RatioTapChangerHolder.java
/**
* Copyright (c) 2016, All partners of the iTesla project (http://www.itesla-project.eu/consortium)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.iidm.network;
import java.util.Optional;
/**
*
* @author Geoffroy Jamgotchian {@literal <geoffroy.jamgotchian at rte-france.com>}
*/
public interface RatioTapChangerHolder {
/**
* Get a builder to create and associate a ratio tap changer to the
* transformer.
*/
RatioTapChangerAdder newRatioTapChanger();
/**
* Get a builder to create and associate a ratio tap changer to the
* transformer, initialized with the values of an existing ratio tap changer.
*/
default RatioTapChangerAdder newRatioTapChanger(RatioTapChanger ratioTapChanger) {
RatioTapChangerAdder adder = this.newRatioTapChanger()
.setRegulationTerminal(ratioTapChanger.getRegulationTerminal())
.setRegulationMode(ratioTapChanger.getRegulationMode())
.setRegulationValue(ratioTapChanger.getRegulationValue())
.setLoadTapChangingCapabilities(ratioTapChanger.hasLoadTapChangingCapabilities())
.setTargetV(ratioTapChanger.getTargetV())
.setLowTapPosition(ratioTapChanger.getLowTapPosition())
.setTapPosition(ratioTapChanger.getTapPosition())
.setRegulating(ratioTapChanger.isRegulating())
.setTargetDeadband(ratioTapChanger.getTargetDeadband());
for (int tapPosition = ratioTapChanger.getLowTapPosition(); tapPosition <= ratioTapChanger.getHighTapPosition(); tapPosition++) {
RatioTapChangerStep step = ratioTapChanger.getStep(tapPosition);
adder.beginStep()
.setRho(step.getRho())
.setB(step.getB())
.setG(step.getG())
.setX(step.getX())
.setR(step.getR())
.endStep();
}
return adder;
}
/**
* Get the ratio tap changer.
* <p>Could return <code>null</code> if the leg is not associated to a ratio
* tap changer.
*/
RatioTapChanger getRatioTapChanger();
/**
* Get the optional ratio tap changer.
*/
default Optional<RatioTapChanger> getOptionalRatioTapChanger() {
return Optional.ofNullable(getRatioTapChanger());
}
/**
* Check if a phase tap changer is present
*/
default boolean hasRatioTapChanger() {
return getRatioTapChanger() != null;
}
}