diff --git a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/AbstractVoltageLevel.java b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/AbstractVoltageLevel.java index 4a67bac2..1c33e787 100644 --- a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/AbstractVoltageLevel.java +++ b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/AbstractVoltageLevel.java @@ -71,7 +71,7 @@ public float getLowVoltageLimit() { @Override public VoltageLevel setLowVoltageLimit(float lowVoltageLimit) { - ValidationUtil.checkLowVoltageLimit(this, lowVoltageLimit); + ValidationUtil.checkVoltageLimits(this, lowVoltageLimit, highVoltageLimit); float oldValue = this.lowVoltageLimit; this.lowVoltageLimit = lowVoltageLimit; notifyUpdate("lowVoltageLimit", oldValue, lowVoltageLimit); @@ -85,7 +85,7 @@ public float getHighVoltageLimit() { @Override public VoltageLevel setHighVoltageLimit(float highVoltageLimit) { - ValidationUtil.checkHighVoltageLimit(this, highVoltageLimit); + ValidationUtil.checkVoltageLimits(this, lowVoltageLimit, highVoltageLimit); float oldValue = this.highVoltageLimit; this.highVoltageLimit = highVoltageLimit; notifyUpdate("highVoltageLimit", oldValue, highVoltageLimit); diff --git a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/NodeBreakerVoltageLevel.java b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/NodeBreakerVoltageLevel.java index 46aa410f..0d5464b5 100644 --- a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/NodeBreakerVoltageLevel.java +++ b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/NodeBreakerVoltageLevel.java @@ -476,6 +476,7 @@ public boolean isValid(UndirectedGraph graph, case GENERATOR: case SHUNT_COMPENSATOR: case DANGLING_LINE: + case STATIC_VAR_COMPENSATOR: feederCount++; break; diff --git a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/RatioTapChangerAdderImpl.java b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/RatioTapChangerAdderImpl.java index 3214044a..06b6ee8f 100644 --- a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/RatioTapChangerAdderImpl.java +++ b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/RatioTapChangerAdderImpl.java @@ -184,19 +184,6 @@ public RatioTapChanger add() { "a regulation terminal has to be set for a regulating ratio tap changer"); } } - } else { - if (regulating != null) { - throw new ValidationException(parent, - "a regulating status is useless for a ratio tap changer without any load tap changing capabilities"); - } - if (!Float.isNaN(targetV)) { - throw new ValidationException(parent, - "a target voltage is useless for a ratio tap changer without any load tap changing capabilities"); - } - if (terminal != null) { - throw new ValidationException(parent, - "a regulation terminal is useless for a ratio tap changer without any load tap changing capabilities"); - } } if (terminal != null && terminal.getVoltageLevel().getNetwork() != getNetwork()) { throw new ValidationException(parent, "regulation terminal is not part of the network"); diff --git a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/ValidationUtil.java b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/ValidationUtil.java index d7279f2e..0cf8893c 100644 --- a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/ValidationUtil.java +++ b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/ValidationUtil.java @@ -159,15 +159,16 @@ static void checkNominalV(Validable validable, float nominalV) { } } - static void checkLowVoltageLimit(Validable validable, float lowVoltageLimit) { - if (lowVoltageLimit <= 0) { - throw new ValidationException(validable, "low voltage limit is <= 0"); + static void checkVoltageLimits(Validable validable, float lowVoltageLimit, float highVoltageLimit) { + if (lowVoltageLimit < 0) { + throw new ValidationException(validable, "low voltage limit is < 0"); } - } - - static void checkHighVoltageLimit(Validable validable, float highVoltageLimit) { - if (highVoltageLimit <= 0) { - throw new ValidationException(validable, "high voltage limit is <= 0"); + if (highVoltageLimit < 0) { + throw new ValidationException(validable, "high voltage limit is < 0"); + } + if (lowVoltageLimit >= highVoltageLimit) { + throw new ValidationException(validable, "Inconsistent voltage limit range [" + + lowVoltageLimit + ", " + highVoltageLimit + "]"); } } diff --git a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/VoltageLevelAdderImpl.java b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/VoltageLevelAdderImpl.java index e28fff79..4a07ecd8 100644 --- a/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/VoltageLevelAdderImpl.java +++ b/iidm-network-impl/src/main/java/eu/itesla_project/iidm/network/impl/VoltageLevelAdderImpl.java @@ -76,8 +76,7 @@ public VoltageLevel add() { // TODO : ckeck that there are not another voltage level with same base voltage ValidationUtil.checkNominalV(this, nominalV); - ValidationUtil.checkLowVoltageLimit(this, lowVoltageLimit); - ValidationUtil.checkHighVoltageLimit(this, highVoltageLimit); + ValidationUtil.checkVoltageLimits(this, lowVoltageLimit, highVoltageLimit); ValidationUtil.checkTopologyKind(this, topologyKind); VoltageLevelExt voltageLevel;