From 9cbac3ebd55f1d0660e2b9bdac704c618395258f Mon Sep 17 00:00:00 2001 From: staudtMarius Date: Wed, 20 Aug 2025 13:10:21 +0200 Subject: [PATCH] Add missing fields to field validation. --- CHANGELOG.md | 2 +- .../factory/input/AbstractThermalStorageInputFactory.java | 4 ++-- .../io/factory/input/ConnectorInputEntityFactory.java | 3 +++ .../ie3/datamodel/io/factory/input/LineInputFactory.java | 5 ++++- .../io/factory/input/MeasurementUnitInputFactory.java | 3 ++- .../ie3/datamodel/io/factory/input/SwitchInputFactory.java | 2 +- .../io/factory/input/Transformer2WInputFactory.java | 2 +- .../io/factory/input/Transformer3WInputFactory.java | 3 ++- .../io/factory/input/graphics/GraphicInputFactory.java | 1 + .../io/factory/input/graphics/LineGraphicInputFactory.java | 4 +++- .../io/factory/input/graphics/NodeGraphicInputFactory.java | 3 ++- .../io/factory/input/participant/BmInputFactory.java | 3 ++- .../io/factory/input/participant/ChpInputFactory.java | 5 ++++- .../io/factory/input/participant/EvInputFactory.java | 3 ++- .../io/factory/input/participant/HpInputFactory.java | 4 +++- .../io/factory/input/participant/StorageInputFactory.java | 3 ++- .../io/factory/input/participant/WecInputFactory.java | 3 ++- .../io/factory/result/CongestionResultFactory.java | 2 +- .../io/factory/result/ConnectorResultFactory.java | 6 +++--- .../io/factory/result/SystemParticipantResultFactory.java | 4 ++-- .../datamodel/io/factory/result/ThermalResultFactory.java | 6 +++--- .../io/factory/typeinput/AssetTypeInputEntityFactory.java | 1 + .../typeinput/SystemParticipantTypeInputFactory.java | 7 ++++--- 23 files changed, 51 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13be3698e..5416aa3b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed small issues in tests [#1400](https://github.com/ie3-institute/PowerSystemDataModel/issues/1400) - Fix transformer susceptance in readTheDocs to negative values [#1078](https://github.com/ie3-institute/PowerSystemDataModel/issues/1078) - +- Added mising fields to field validation [#1422](https://github.com/ie3-institute/PowerSystemDataModel/issues/1422) ### Changed - Updated CI-Pipeline to run task `Deploy` and `Staging` only for `Main` [#1403](https://github.com/ie3-institute/PowerSystemDataModel/issues/1403) diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/AbstractThermalStorageInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/AbstractThermalStorageInputFactory.java index f286217c7..718de20eb 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/AbstractThermalStorageInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/AbstractThermalStorageInputFactory.java @@ -6,14 +6,14 @@ package edu.ie3.datamodel.io.factory.input; import edu.ie3.datamodel.models.StandardUnits; -import edu.ie3.datamodel.models.input.AssetInput; +import edu.ie3.datamodel.models.input.thermal.AbstractStorageInput; import edu.ie3.util.quantities.interfaces.SpecificHeatCapacity; import javax.measure.quantity.Power; import javax.measure.quantity.Temperature; import javax.measure.quantity.Volume; import tech.units.indriya.ComparableQuantity; -public abstract class AbstractThermalStorageInputFactory +public abstract class AbstractThermalStorageInputFactory extends AssetInputEntityFactory { private static final String STORAGE_VOLUME_LVL = "storageVolumeLvl"; diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/ConnectorInputEntityFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/ConnectorInputEntityFactory.java index 8fc59cbec..ef333524d 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/ConnectorInputEntityFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/ConnectorInputEntityFactory.java @@ -24,6 +24,9 @@ public abstract class ConnectorInputEntityFactory< T extends ConnectorInput, D extends ConnectorInputEntityData> extends AssetInputEntityFactory { + protected static final String NODE_A = "nodeA"; + protected static final String NODE_B = "nodeB"; + /** * Attribute that _can_, but does not _have to_ be present for the creation of {@link * ConnectorInput}s. Thus, this attribute name declaration can be used in subclasses of {@link diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/LineInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/LineInputFactory.java index ff8769100..be0f1af6f 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/LineInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/LineInputFactory.java @@ -25,6 +25,7 @@ public class LineInputFactory private static final String LENGTH = "length"; private static final String GEO_POSITION = "geoPosition"; private static final String OLM_CHARACTERISTIC = "olmCharacteristic"; + private static final String TYPE = "type"; public LineInputFactory() { super(LineInput.class); @@ -32,7 +33,9 @@ public LineInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {PARALLEL_DEVICES, LENGTH, GEO_POSITION, OLM_CHARACTERISTIC}; + return new String[] { + NODE_A, NODE_B, PARALLEL_DEVICES, LENGTH, GEO_POSITION, OLM_CHARACTERISTIC, TYPE + }; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/MeasurementUnitInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/MeasurementUnitInputFactory.java index e15f6f494..d4bb56c65 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/MeasurementUnitInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/MeasurementUnitInputFactory.java @@ -13,6 +13,7 @@ public class MeasurementUnitInputFactory extends AssetInputEntityFactory { + private static final String NODE = "node"; private static final String V_MAG = "vMag"; private static final String V_ANG = "vAng"; private static final String P = "p"; @@ -24,7 +25,7 @@ public MeasurementUnitInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {V_MAG, V_ANG, P, Q}; + return new String[] {NODE, V_MAG, V_ANG, P, Q}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/SwitchInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/SwitchInputFactory.java index d716324cc..eec533e16 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/SwitchInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/SwitchInputFactory.java @@ -21,7 +21,7 @@ public SwitchInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {CLOSED}; + return new String[] {NODE_A, NODE_B, CLOSED}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer2WInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer2WInputFactory.java index 110f0572a..a6046110f 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer2WInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer2WInputFactory.java @@ -25,7 +25,7 @@ public Transformer2WInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {PARALLEL_DEVICES, TAP_POS, AUTO_TAP}; + return new String[] {NODE_A, NODE_B, PARALLEL_DEVICES, TAP_POS, AUTO_TAP}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer3WInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer3WInputFactory.java index c9987fe1f..798c42c93 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer3WInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/Transformer3WInputFactory.java @@ -17,6 +17,7 @@ public class Transformer3WInputFactory private static final String TAP_POS = "tapPos"; private static final String AUTO_TAP = "autoTap"; + private static final String NODE_C = "nodeC"; public Transformer3WInputFactory() { super(Transformer3WInput.class); @@ -24,7 +25,7 @@ public Transformer3WInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {PARALLEL_DEVICES, TAP_POS, AUTO_TAP}; + return new String[] {NODE_A, NODE_B, NODE_C, PARALLEL_DEVICES, TAP_POS, AUTO_TAP}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/GraphicInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/GraphicInputFactory.java index c3a5a058b..b7e872525 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/GraphicInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/GraphicInputFactory.java @@ -26,6 +26,7 @@ public abstract class GraphicInputFactory... allowedClasses) { super(allowedClasses); } diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/LineGraphicInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/LineGraphicInputFactory.java index d2b57d35a..7ebd4f1a1 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/LineGraphicInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/LineGraphicInputFactory.java @@ -18,13 +18,15 @@ public final class LineGraphicInputFactory extends GraphicInputFactory { + private static final String LINE = "line"; + public LineGraphicInputFactory() { super(LineGraphicInput.class); } @Override protected String[] getAdditionalFields() { - return new String[0]; + return new String[] {LINE}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/NodeGraphicInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/NodeGraphicInputFactory.java index bd23dedcc..b443e6dcf 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/NodeGraphicInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/graphics/NodeGraphicInputFactory.java @@ -21,6 +21,7 @@ public final class NodeGraphicInputFactory extends GraphicInputFactory { private static final String POINT = "point"; + private static final String NODE = "node"; public NodeGraphicInputFactory() { super(NodeGraphicInput.class); @@ -28,7 +29,7 @@ public NodeGraphicInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {POINT}; + return new String[] {POINT, NODE}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/BmInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/BmInputFactory.java index dd17b0fb0..0c2b36b2a 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/BmInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/BmInputFactory.java @@ -20,6 +20,7 @@ public class BmInputFactory extends SystemParticipantInputEntityFactory< BmInput, SystemParticipantTypedEntityData> { + private static final String TYPE = "type"; private static final String MARKET_REACTION = "marketReaction"; private static final String COST_CONTROLLED = "costControlled"; private static final String FEED_IN_TARIFF = "feedInTariff"; @@ -30,7 +31,7 @@ public BmInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {MARKET_REACTION, COST_CONTROLLED, FEED_IN_TARIFF}; + return new String[] {TYPE, MARKET_REACTION, COST_CONTROLLED, FEED_IN_TARIFF}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/ChpInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/ChpInputFactory.java index db7bb3cdf..208c15b98 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/ChpInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/ChpInputFactory.java @@ -15,6 +15,9 @@ public class ChpInputFactory extends SystemParticipantInputEntityFactory { + private static final String THERMAL_BUS = "thermalBus"; + private static final String TYPE = "type"; + private static final String THERMAL_STORAGE = "thermalStorage"; private static final String MARKET_REACTION = "marketReaction"; public ChpInputFactory() { @@ -23,7 +26,7 @@ public ChpInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {MARKET_REACTION}; + return new String[] {THERMAL_BUS, TYPE, THERMAL_STORAGE, MARKET_REACTION}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvInputFactory.java index a24abad06..1f258467b 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvInputFactory.java @@ -17,6 +17,7 @@ public class EvInputFactory extends SystemParticipantInputEntityFactory< EvInput, SystemParticipantTypedEntityData> { + private static final String TYPE = "type"; public EvInputFactory() { super(EvInput.class); @@ -24,7 +25,7 @@ public EvInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[0]; + return new String[] {TYPE}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/HpInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/HpInputFactory.java index d075d64a3..27943ee29 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/HpInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/HpInputFactory.java @@ -15,6 +15,8 @@ public class HpInputFactory extends SystemParticipantInputEntityFactory { + private static final String TYPE = "type"; + private static final String THERMAL_BUS = "thermalBus"; public HpInputFactory() { super(HpInput.class); @@ -22,7 +24,7 @@ public HpInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[0]; + return new String[] {TYPE, THERMAL_BUS}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/StorageInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/StorageInputFactory.java index 4b9149525..82b701f45 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/StorageInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/StorageInputFactory.java @@ -17,6 +17,7 @@ public class StorageInputFactory extends SystemParticipantInputEntityFactory< StorageInput, SystemParticipantTypedEntityData> { + private static final String TYPE = "type"; public StorageInputFactory() { super(StorageInput.class); @@ -24,7 +25,7 @@ public StorageInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[0]; + return new String[] {TYPE}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/WecInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/WecInputFactory.java index a1724fcac..4a65c93f6 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/WecInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/WecInputFactory.java @@ -17,6 +17,7 @@ public class WecInputFactory extends SystemParticipantInputEntityFactory< WecInput, SystemParticipantTypedEntityData> { + private static final String TYPE = "type"; private static final String MARKET_REACTION = "marketReaction"; public WecInputFactory() { @@ -25,7 +26,7 @@ public WecInputFactory() { @Override protected String[] getAdditionalFields() { - return new String[] {MARKET_REACTION}; + return new String[] {TYPE, MARKET_REACTION}; } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/result/CongestionResultFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/result/CongestionResultFactory.java index 1ff917089..ea2c7a19b 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/result/CongestionResultFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/result/CongestionResultFactory.java @@ -38,7 +38,7 @@ public CongestionResultFactory(DateTimeFormatter dateTimeFormatter) { @Override protected List> getFields(Class entityClass) { - return List.of(newSet(TIME, INPUT_MODEL, TYPE, SUBGRID, MIN, MAX)); + return List.of(newSet(TIME, INPUT_MODEL, TYPE, VALUE, SUBGRID, MIN, MAX)); } @Override diff --git a/src/main/java/edu/ie3/datamodel/io/factory/result/ConnectorResultFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/result/ConnectorResultFactory.java index 495ee9bb9..be0fa925c 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/result/ConnectorResultFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/result/ConnectorResultFactory.java @@ -51,10 +51,10 @@ protected List> getFields(Class entityClass) { Set minConstructorParams = newSet(TIME, INPUT_MODEL, IAMAG, IAANG, IBMAG, IBANG); if (entityClass.equals(Transformer2WResult.class)) { - minConstructorParams = newSet(TIME, INPUT_MODEL, IAMAG, IAANG, IBMAG, IBANG, TAPPOS); + minConstructorParams = expandSet(minConstructorParams, TAPPOS); + } else if (entityClass.equals(Transformer3WResult.class)) { - minConstructorParams = - newSet(TIME, INPUT_MODEL, IAMAG, IAANG, IBMAG, IBANG, ICMAG, ICANG, TAPPOS); + minConstructorParams = expandSet(minConstructorParams, ICMAG, ICANG, TAPPOS); } return List.of(minConstructorParams); diff --git a/src/main/java/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactory.java index 1d819be4e..150709946 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactory.java @@ -72,8 +72,8 @@ protected List> getFields(Class entityClass) { /// all result models have the same constructor except StorageResult Set minConstructorParams = newSet(TIME, INPUT_MODEL, POWER, REACTIVE_POWER); - if (entityClass.equals(StorageResult.class) || entityClass.equals(EvResult.class)) { - minConstructorParams = newSet(TIME, INPUT_MODEL, POWER, REACTIVE_POWER, SOC); + if (ElectricalEnergyStorageResult.class.isAssignableFrom(entityClass)) { + minConstructorParams = expandSet(minConstructorParams, SOC); } if (SystemParticipantWithHeatResult.class.isAssignableFrom(entityClass)) { diff --git a/src/main/java/edu/ie3/datamodel/io/factory/result/ThermalResultFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/result/ThermalResultFactory.java index b2d52ad0d..9e522a5a4 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/result/ThermalResultFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/result/ThermalResultFactory.java @@ -54,11 +54,11 @@ protected List> getFields(Class entityClass) { Set minConstructorParams = newSet(TIME, INPUT_MODEL, Q_DOT); if (entityClass.equals(ThermalHouseResult.class)) { - minConstructorParams = newSet(TIME, INPUT_MODEL, Q_DOT, INDOOR_TEMPERATURE); + minConstructorParams = expandSet(minConstructorParams, INDOOR_TEMPERATURE); } else if (entityClass.equals(CylindricalStorageResult.class)) { - minConstructorParams = newSet(TIME, INPUT_MODEL, Q_DOT, ENERGY, FILL_LEVEL); + minConstructorParams = expandSet(minConstructorParams, ENERGY, FILL_LEVEL); } else if (entityClass.equals(DomesticHotWaterStorageResult.class)) { - minConstructorParams = newSet(TIME, INPUT_MODEL, Q_DOT, ENERGY, FILL_LEVEL); + minConstructorParams = expandSet(minConstructorParams, ENERGY, FILL_LEVEL); } return List.of(minConstructorParams); diff --git a/src/main/java/edu/ie3/datamodel/io/factory/typeinput/AssetTypeInputEntityFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/typeinput/AssetTypeInputEntityFactory.java index 4aae38c09..c3d4dd495 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/typeinput/AssetTypeInputEntityFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/typeinput/AssetTypeInputEntityFactory.java @@ -20,6 +20,7 @@ abstract class AssetTypeInputEntityFactory extends UniqueEntityFactory { + @SafeVarargs protected AssetTypeInputEntityFactory(Class... allowedClasses) { super(allowedClasses); } diff --git a/src/main/java/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactory.java index 1b91ee4ae..29a9e15e3 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactory.java @@ -37,7 +37,7 @@ public class SystemParticipantTypeInputFactory // EvTypeInput private static final String E_CONS = "eCons"; - private static final String S_RATEDDC = "sRatedDC"; + private static final String S_RATED_DC = "sRatedDC"; // BmTypeInput private static final String ACTIVE_POWER_GRADIENT = "activePowerGradient"; @@ -73,7 +73,7 @@ protected List> getFields(Class entityClass) { Set constructorParameters = null; if (entityClass.equals(EvTypeInput.class)) { - constructorParameters = expandSet(standardConstructorParams, E_STORAGE, E_CONS); + constructorParameters = expandSet(standardConstructorParams, E_STORAGE, E_CONS, S_RATED_DC); } else if (entityClass.equals(HpTypeInput.class)) { constructorParameters = expandSet(standardConstructorParams, P_THERMAL); } else if (entityClass.equals(BmTypeInput.class)) { @@ -132,7 +132,8 @@ private SystemParticipantTypeInput buildEvTypeInput( ComparableQuantity eCons = data.getQuantity(E_CONS, StandardUnits.ENERGY_PER_DISTANCE); - ComparableQuantity sRatedDC = data.getQuantity(S_RATEDDC, StandardUnits.ACTIVE_POWER_IN); + ComparableQuantity sRatedDC = + data.getQuantity(S_RATED_DC, StandardUnits.ACTIVE_POWER_IN); return new EvTypeInput(uuid, id, capEx, opEx, eStorage, eCons, sRated, cosPhi, sRatedDC); }