/**
 * Copyright (c) 2016, RTE (http://www.rte-france.com)
 * 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/.
 */
package com.powsybl.iidm.network;

/**
 * Static VAR compensator model.
 *
 * @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
 */
public interface StaticVarCompensator extends Injection<StaticVarCompensator> {

    enum RegulationMode {
        VOLTAGE,
        REACTIVE_POWER,
        OFF
    }

    /**
     * Get the minimum susceptance in S.
     * @return the minimum susceptance
     */
    double getBmin();

    /**
     * Set the minimum susceptance in S.
     * @param bMin minimum susceptance
     * @return this to allow method chaining
     */
    StaticVarCompensator setBmin(double bMin);

    /**
     * Get the maximum susceptance in S.
     * @return the maximum susceptance
     */
    double getBmax();

    /**
     * Set the maximum susceptance in S.
     * @param bMax the maximum susceptance
     * @return this to allow method chaining
     */
    StaticVarCompensator setBmax(double bMax);

    /**
     * <p>Get the voltage set point in Kv.</p>
     * <p>Needed only when regulating mode is set to {@link RegulationMode#VOLTAGE}.</p>
     * <p>Depends on the working state.</p>
     * @return the voltage set point
     */
    double getVoltageSetPoint();

    /**
     * <p>Set the voltage set point in Kv.</p>
     * <p>Needed only when regulating mode is set to {@link RegulationMode#VOLTAGE}.</p>
     * <p>Depends on the working state.</p>
     * @param voltageSetPoint the voltage set point
     * @return this to allow method chaining
     */
    StaticVarCompensator setVoltageSetPoint(double voltageSetPoint);

    /**
     * <p>Get the reactive power set point in KV.</p>
     * <p>Needed only when regulating mode is set to {@link RegulationMode#REACTIVE_POWER}.</p>
     * <p>Depends on the working state.</p>
     * @return the reactive power set point
     */
    double getReactivePowerSetPoint();

    /**
     * <p>Set the reactive power set point in KV.</p>
     * <p>Needed only when regulating mode is set to {@link RegulationMode#REACTIVE_POWER}.</p>
     * <p>Depends on the working state.</p>
     * @param reactivePowerSetPoint the reactive power set point
     * @return this to allow method chaining
     */
    StaticVarCompensator setReactivePowerSetPoint(double reactivePowerSetPoint);

    /**
     * <p>Get the regulating mode.</p>
     * <p>Depends on the working state.</p>
     * @return the regulating mode
     */
    RegulationMode getRegulationMode();

    /**
     * <p>set the regulating mode.</p>
     * <p>Depends on the working state.</p>
     * @param regulationMode the regulating mode
     * @return this to allow method chaining
     */
    StaticVarCompensator setRegulationMode(RegulationMode regulationMode);

}

@@ -1226,33 +1226,32 @@
  the voltage set
- 
 point in Kv.%3C/p%3E
@@ -1243,32 +1243,32 @@
 oint in Kv.%3C/p%3E%0A
+
      * %3Cp%3ENeeded
@@ -1406,33 +1406,32 @@
  the voltage set
- 
 point%0A     */%0A  
@@ -1495,25 +1495,24 @@
  voltage set
- 
 point in Kv.
@@ -1690,25 +1690,24 @@
  voltage set
- 
 point%0A     *
@@ -1859,33 +1859,32 @@
 active power set
- 
 point in KV.%3C/p%3E
@@ -1868,34 +1868,36 @@
 wer setpoint in 
-KV
+MVAR
 .%3C/p%3E%0A     * %3Cp%3E
@@ -2055,33 +2055,32 @@
 active power set
- 
 point%0A     */%0A  
@@ -2157,25 +2157,24 @@
 ve power set
- 
 point in KV.
@@ -2174,10 +2174,12 @@
  in 
-KV
+MVAR
 .%3C/p
@@ -2312,32 +2312,32 @@
 king state.%3C/p%3E%0A
+
      * @param re
@@ -2378,17 +2378,16 @@
 ower set
- 
 point%0A  

Fix StaticVarCompensator documentation (#444)