-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
first draft on adding nested CurrentLimitAdder on LineAdder
Signed-off-by: CHIQUET Benoit <benoit.chiquet@rte-france.com>
- Loading branch information
Showing
11 changed files
with
200 additions
and
5 deletions.
There are no files selected for viewing
5 changes: 5 additions & 0 deletions
5
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/AdderUser.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.powsybl.iidm.network; | ||
|
||
public interface AdderUser<ChildAdder> { | ||
void collectAdder(ChildAdder childAdder); | ||
} |
7 changes: 7 additions & 0 deletions
7
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/CurrentLimitsNestedAdder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.powsybl.iidm.network; | ||
|
||
public interface CurrentLimitsNestedAdder<ParentAdder extends AdderUser<CurrentLimitsNestedAdder<ParentAdder>>> | ||
extends NestedAdder<ParentAdder, CurrentLimitsNestedAdder<ParentAdder>>, | ||
CurrentLimitsPayload<CurrentLimitsNestedAdder<ParentAdder>>, | ||
AdderUser<TemporaryLimitNestedAdder<CurrentLimitsNestedAdder<ParentAdder>>> { | ||
} |
11 changes: 11 additions & 0 deletions
11
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/CurrentLimitsPayload.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.powsybl.iidm.network; | ||
|
||
public interface CurrentLimitsPayload<ExtendingAdder extends AdderUser<TemporaryLimitNestedAdder<ExtendingAdder>>> { | ||
ExtendingAdder setPermanentLimit(double permanentLimit); | ||
|
||
double getPermanentLimit(); | ||
|
||
CurrentLimitsAdder fill(CurrentLimitsAdder adder); | ||
|
||
TemporaryLimitNestedAdder<ExtendingAdder> beginTemporaryLimit(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 5 additions & 0 deletions
5
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/NestedAdder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.powsybl.iidm.network; | ||
|
||
public interface NestedAdder<ParentAdder extends AdderUser<ExtendingAdder>, ExtendingAdder> { | ||
ParentAdder end(); | ||
} |
6 changes: 6 additions & 0 deletions
6
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/TemporaryLimitNestedAdder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.powsybl.iidm.network; | ||
|
||
public interface TemporaryLimitNestedAdder<ParentAdder extends AdderUser<TemporaryLimitNestedAdder<ParentAdder>>> | ||
extends NestedAdder<ParentAdder, TemporaryLimitNestedAdder<ParentAdder>>, | ||
TemporaryLimitPayload<TemporaryLimitNestedAdder<ParentAdder>> { | ||
} |
9 changes: 9 additions & 0 deletions
9
iidm/iidm-api/src/main/java/com/powsybl/iidm/network/TemporaryLimitPayload.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.powsybl.iidm.network; | ||
|
||
public interface TemporaryLimitPayload<ExtendingAdder> { | ||
ExtendingAdder setName(String name); | ||
|
||
String getName(); | ||
|
||
LoadingLimitsAdder.TemporaryLimitAdder<CurrentLimitsAdder> fill(LoadingLimitsAdder.TemporaryLimitAdder<CurrentLimitsAdder> adder); | ||
} |
55 changes: 55 additions & 0 deletions
55
iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/CurrentLimitsNestedAdderImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
package com.powsybl.iidm.network.impl; | ||
|
||
import com.powsybl.iidm.network.AdderUser; | ||
import com.powsybl.iidm.network.CurrentLimitsAdder; | ||
import com.powsybl.iidm.network.CurrentLimitsNestedAdder; | ||
import com.powsybl.iidm.network.TemporaryLimitNestedAdder; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
public class CurrentLimitsNestedAdderImpl<ParentAdder extends AdderUser<CurrentLimitsNestedAdder<ParentAdder>>> | ||
implements CurrentLimitsNestedAdder<ParentAdder>, | ||
AdderUser<TemporaryLimitNestedAdder<CurrentLimitsNestedAdder<ParentAdder>>> { | ||
private ParentAdder parentAdder; | ||
private double permanentLimit; | ||
private List<TemporaryLimitNestedAdder<CurrentLimitsNestedAdder<ParentAdder>>> temporaryLimits = new ArrayList<>(); | ||
|
||
public CurrentLimitsNestedAdderImpl(ParentAdder parentAdder) { | ||
this.parentAdder = parentAdder; | ||
} | ||
|
||
@Override | ||
public CurrentLimitsNestedAdder<ParentAdder> setPermanentLimit(double permanentLimit) { | ||
this.permanentLimit = permanentLimit; | ||
return this; | ||
} | ||
|
||
@Override | ||
public double getPermanentLimit() { | ||
return this.permanentLimit; | ||
} | ||
|
||
@Override | ||
public CurrentLimitsAdder fill(CurrentLimitsAdder adder) { | ||
adder.setPermanentLimit(this.permanentLimit); | ||
temporaryLimits.forEach(limit -> limit.fill(adder.beginTemporaryLimit()).endTemporaryLimit()); | ||
return adder; | ||
} | ||
|
||
@Override | ||
public TemporaryLimitNestedAdder<CurrentLimitsNestedAdder<ParentAdder>> beginTemporaryLimit() { | ||
return new TemporaryLimitNestedAdderImpl(this); | ||
} | ||
|
||
@Override | ||
public ParentAdder end() { | ||
parentAdder.collectAdder(this); | ||
return parentAdder; | ||
} | ||
|
||
@Override | ||
public void collectAdder(TemporaryLimitNestedAdder<CurrentLimitsNestedAdder<ParentAdder>> adder) { | ||
this.temporaryLimits.add(adder); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
.../iidm-impl/src/main/java/com/powsybl/iidm/network/impl/TemporaryLimitNestedAdderImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package com.powsybl.iidm.network.impl; | ||
|
||
import com.powsybl.iidm.network.AdderUser; | ||
import com.powsybl.iidm.network.CurrentLimitsAdder; | ||
import com.powsybl.iidm.network.LoadingLimitsAdder; | ||
import com.powsybl.iidm.network.TemporaryLimitNestedAdder; | ||
|
||
public class TemporaryLimitNestedAdderImpl<ParentAdder extends AdderUser<TemporaryLimitNestedAdder<ParentAdder>>> | ||
implements TemporaryLimitNestedAdder<ParentAdder> { | ||
private String name; | ||
private ParentAdder parentAdder; | ||
|
||
public TemporaryLimitNestedAdderImpl(ParentAdder parentAdder) { | ||
this.parentAdder = parentAdder; | ||
} | ||
|
||
@Override | ||
public ParentAdder end() { | ||
parentAdder.collectAdder(this); | ||
return parentAdder; | ||
} | ||
|
||
@Override | ||
public TemporaryLimitNestedAdder<ParentAdder> setName(String name) { | ||
this.name = name; | ||
return (TemporaryLimitNestedAdder<ParentAdder>) this; | ||
} | ||
|
||
@Override | ||
public String getName() { | ||
return name; | ||
} | ||
|
||
@Override | ||
public LoadingLimitsAdder.TemporaryLimitAdder<CurrentLimitsAdder> fill(LoadingLimitsAdder.TemporaryLimitAdder<CurrentLimitsAdder> adder) { | ||
return adder.setName(name); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters