Skip to content

Commit 44494c1

Browse files
committed
Fixed valid fields for EmInput
1 parent 863de29 commit 44494c1

File tree

6 files changed

+117
-26
lines changed

6 files changed

+117
-26
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88

99
### Fixed
1010
- Fixed handling of `CongestionResult.InputModelType` in `EntityProcessor` [#1325](https://github.com/ie3-institute/PowerSystemDataModel/issues/1325)
11-
- -Fixed em fields in input models [#1331](https://github.com/ie3-institute/PowerSystemDataModel/issues/1331)
11+
- Fixed em fields in input models [#1331](https://github.com/ie3-institute/PowerSystemDataModel/issues/1331)
12+
- Fixed valid fields for `EmInput` [#1360](https://github.com/ie3-institute/PowerSystemDataModel/issues/1360)
1213

1314
### Changed
1415
- Updated dependabot workflow and added CODEOWNERS [#1328](https://github.com/ie3-institute/PowerSystemDataModel/issues/1328)

src/main/java/edu/ie3/datamodel/io/factory/input/AssetInputEntityFactory.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@
2424
public abstract class AssetInputEntityFactory<T extends AssetInput, D extends AssetInputEntityData>
2525
extends UniqueEntityFactory<T, D> {
2626

27-
private static final String OPERATES_FROM = "operatesFrom";
28-
private static final String OPERATES_UNTIL = "operatesUntil";
27+
protected static final String OPERATOR = "operator";
28+
protected static final String OPERATES_FROM = "operatesFrom";
29+
protected static final String OPERATES_UNTIL = "operatesUntil";
2930

3031
@SafeVarargs
3132
protected AssetInputEntityFactory(Class<? extends T>... allowedClasses) {
@@ -48,14 +49,33 @@ protected List<Set<String>> getFields(Class<?> entityClass) {
4849
Set<String> constructorParamsUntil = expandSet(constructorParamsMin, OPERATES_UNTIL);
4950
Set<String> constructorParamsBoth = expandSet(constructorParamsFrom, OPERATES_UNTIL);
5051

52+
// with operator field
53+
Set<String> constructorParamsOperator = expandSet(constructorParamsMin, OPERATOR);
54+
Set<String> constructorParamsOperatorFrom = expandSet(constructorParamsFrom, OPERATOR);
55+
Set<String> constructorParamsOperatorUntil = expandSet(constructorParamsUntil, OPERATOR);
56+
Set<String> constructorParamsOperatorBoth = expandSet(constructorParamsBoth, OPERATOR);
57+
5158
final String[] additionalFields = getAdditionalFields();
5259

5360
constructorParamsMin = expandSet(constructorParamsMin, additionalFields);
5461
constructorParamsFrom = expandSet(constructorParamsFrom, additionalFields);
5562
constructorParamsUntil = expandSet(constructorParamsUntil, additionalFields);
5663
constructorParamsBoth = expandSet(constructorParamsBoth, additionalFields);
64+
65+
constructorParamsOperator = expandSet(constructorParamsOperator, additionalFields);
66+
constructorParamsOperatorFrom = expandSet(constructorParamsOperatorFrom, additionalFields);
67+
constructorParamsOperatorUntil = expandSet(constructorParamsOperatorUntil, additionalFields);
68+
constructorParamsOperatorBoth = expandSet(constructorParamsOperatorBoth, additionalFields);
69+
5770
return Arrays.asList(
58-
constructorParamsMin, constructorParamsFrom, constructorParamsUntil, constructorParamsBoth);
71+
constructorParamsMin,
72+
constructorParamsFrom,
73+
constructorParamsUntil,
74+
constructorParamsBoth,
75+
constructorParamsOperator,
76+
constructorParamsOperatorFrom,
77+
constructorParamsOperatorUntil,
78+
constructorParamsOperatorBoth);
5979
}
6080

6181
/**

src/main/java/edu/ie3/datamodel/io/factory/input/EmInputFactory.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
import edu.ie3.datamodel.models.OperationTime;
99
import edu.ie3.datamodel.models.input.EmInput;
1010
import edu.ie3.datamodel.models.input.OperatorInput;
11-
import java.util.ArrayList;
12-
import java.util.List;
13-
import java.util.Set;
14-
import java.util.UUID;
11+
import java.util.*;
1512

1613
public class EmInputFactory extends AssetInputEntityFactory<EmInput, EmAssetInputEntityData> {
1714

@@ -23,21 +20,9 @@ public EmInputFactory() {
2320
super(EmInput.class);
2421
}
2522

26-
@Override
27-
protected List<Set<String>> getFields(Class<?> entityClass) {
28-
List<Set<String>> fields = new ArrayList<>(super.getFields(entityClass));
29-
30-
List<Set<String>> withEm =
31-
fields.stream().map(f -> (Set<String>) expandSet(f, CONTROLLING_EM)).toList();
32-
33-
fields.addAll(withEm);
34-
35-
return fields;
36-
}
37-
3823
@Override
3924
protected String[] getAdditionalFields() {
40-
return new String[] {CONTROL_STRATEGY};
25+
return new String[] {CONTROL_STRATEGY, CONTROLLING_EM};
4126
}
4227

4328
@Override

src/test/groovy/edu/ie3/datamodel/io/factory/input/AssetInputEntityFactoryTest.groovy

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,11 @@ class AssetInputEntityFactoryTest extends Specification implements FactoryTestHe
289289
"0: [id, uuid] or [id, uuid]\n" +
290290
"1: [id, operatesFrom, uuid] or [id, operates_from, uuid]\n" +
291291
"2: [id, operatesUntil, uuid] or [id, operates_until, uuid]\n" +
292-
"3: [id, operatesFrom, operatesUntil, uuid] or [id, operates_from, operates_until, uuid]\n"
292+
"3: [id, operatesFrom, operatesUntil, uuid] or [id, operates_from, operates_until, uuid]\n" +
293+
"4: [id, operator, uuid] or [id, operator, uuid]\n" +
294+
"5: [id, operatesFrom, operator, uuid] or [id, operates_from, operator, uuid]\n" +
295+
"6: [id, operatesUntil, operator, uuid] or [id, operates_until, operator, uuid]\n" +
296+
"7: [id, operatesFrom, operatesUntil, operator, uuid] or [id, operates_from, operates_until, operator, uuid]\n"
293297
}
294298
295299
private static class TestAssetInput extends AssetInput {

src/test/groovy/edu/ie3/datamodel/io/factory/input/EmInputFactoryTest.groovy

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,79 @@ class EmInputFactoryTest extends Specification {
2424
inputFactory.supportedClasses == expectedClasses
2525
}
2626

27+
def "An EmInputFactory should return the valid fields correctly"() {
28+
given:
29+
def inputFactory = new EmInputFactory()
30+
def validCombinations = [
31+
[
32+
"uuid",
33+
"id",
34+
"controlStrategy",
35+
"controllingEm"
36+
] as Set,
37+
[
38+
"uuid",
39+
"id",
40+
"controlStrategy",
41+
"controllingEm",
42+
"operatesFrom"
43+
] as Set,
44+
[
45+
"uuid",
46+
"id",
47+
"controlStrategy",
48+
"controllingEm",
49+
"operatesUntil"
50+
] as Set,
51+
[
52+
"uuid",
53+
"id",
54+
"controlStrategy",
55+
"controllingEm",
56+
"operatesFrom",
57+
"operatesUntil"
58+
] as Set,
59+
[
60+
"uuid",
61+
"id",
62+
"controlStrategy",
63+
"controllingEm",
64+
"operator"
65+
] as Set,
66+
[
67+
"uuid",
68+
"id",
69+
"controlStrategy",
70+
"controllingEm",
71+
"operator",
72+
"operatesFrom"
73+
] as Set,
74+
[
75+
"uuid",
76+
"id",
77+
"controlStrategy",
78+
"controllingEm",
79+
"operator",
80+
"operatesUntil"
81+
] as Set,
82+
[
83+
"uuid",
84+
"id",
85+
"controlStrategy",
86+
"controllingEm",
87+
"operator",
88+
"operatesFrom",
89+
"operatesUntil"
90+
] as Set,
91+
]
92+
93+
when:
94+
def fieldCombinations = inputFactory.getFields(EmInput)
95+
96+
then:
97+
fieldCombinations == validCombinations
98+
}
99+
27100
def "A EmInputFactory should parse a valid EmInput with parent EM correctly"() {
28101
given:
29102
def inputFactory = new EmInputFactory()

src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/FixedFeedInInputFactoryTest.groovy

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,17 @@ class FixedFeedInInputFactoryTest extends Specification implements FactoryTestHe
9292
"1: [cosPhiRated, id, operatesFrom, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operates_from, q_characteristics, s_rated, uuid]\n" +
9393
"2: [cosPhiRated, id, operatesUntil, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operates_until, q_characteristics, s_rated, uuid]\n" +
9494
"3: [cosPhiRated, id, operatesFrom, operatesUntil, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operates_from, operates_until, q_characteristics, s_rated, uuid]\n" +
95-
"4: [controllingEm, cosPhiRated, id, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, q_characteristics, s_rated, uuid]\n" +
96-
"5: [controllingEm, cosPhiRated, id, operatesFrom, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_from, q_characteristics, s_rated, uuid]\n" +
97-
"6: [controllingEm, cosPhiRated, id, operatesUntil, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_until, q_characteristics, s_rated, uuid]\n" +
98-
"7: [controllingEm, cosPhiRated, id, operatesFrom, operatesUntil, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_from, operates_until, q_characteristics, s_rated, uuid]\n"
95+
"4: [cosPhiRated, id, operator, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operator, q_characteristics, s_rated, uuid]\n" +
96+
"5: [cosPhiRated, id, operatesFrom, operator, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operates_from, operator, q_characteristics, s_rated, uuid]\n" +
97+
"6: [cosPhiRated, id, operatesUntil, operator, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operates_until, operator, q_characteristics, s_rated, uuid]\n" +
98+
"7: [cosPhiRated, id, operatesFrom, operatesUntil, operator, qCharacteristics, sRated, uuid] or [cos_phi_rated, id, operates_from, operates_until, operator, q_characteristics, s_rated, uuid]\n" +
99+
"8: [controllingEm, cosPhiRated, id, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, q_characteristics, s_rated, uuid]\n" +
100+
"9: [controllingEm, cosPhiRated, id, operatesFrom, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_from, q_characteristics, s_rated, uuid]\n" +
101+
"10: [controllingEm, cosPhiRated, id, operatesUntil, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_until, q_characteristics, s_rated, uuid]\n" +
102+
"11: [controllingEm, cosPhiRated, id, operatesFrom, operatesUntil, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_from, operates_until, q_characteristics, s_rated, uuid]\n" +
103+
"12: [controllingEm, cosPhiRated, id, operator, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operator, q_characteristics, s_rated, uuid]\n" +
104+
"13: [controllingEm, cosPhiRated, id, operatesFrom, operator, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_from, operator, q_characteristics, s_rated, uuid]\n" +
105+
"14: [controllingEm, cosPhiRated, id, operatesUntil, operator, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_until, operator, q_characteristics, s_rated, uuid]\n" +
106+
"15: [controllingEm, cosPhiRated, id, operatesFrom, operatesUntil, operator, qCharacteristics, sRated, uuid] or [controlling_em, cos_phi_rated, id, operates_from, operates_until, operator, q_characteristics, s_rated, uuid]\n"
99107
}
100108
}

0 commit comments

Comments
 (0)