Skip to content

Commit fda0b6e

Browse files
authored
Merge pull request #445 from com-pas/feat/follow_up_deconstructing_compas_flow
RSR-1113 - Follow up - deconstructing compas-flow
2 parents e411dcb + 704a8d7 commit fda0b6e

File tree

4 files changed

+4
-129
lines changed

4 files changed

+4
-129
lines changed

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/scl/ExtRefService.java

Lines changed: 4 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66

77
package org.lfenergy.compas.sct.commons.scl;
88

9-
import org.lfenergy.compas.scl2007b4.model.*;
10-
import org.lfenergy.compas.sct.commons.util.PrivateUtils;
9+
import org.lfenergy.compas.scl2007b4.model.TExtRef;
10+
import org.lfenergy.compas.scl2007b4.model.TInputs;
11+
import org.lfenergy.compas.scl2007b4.model.TLDevice;
12+
import org.lfenergy.compas.scl2007b4.model.TLLN0Enum;
1113
import org.lfenergy.compas.sct.commons.util.Utils;
1214

1315
import java.util.ArrayList;
@@ -30,28 +32,6 @@ public Stream<TExtRef> getExtRefs(TLDevice tlDevice) {
3032
.flatMap(tInputs -> tInputs.getExtRef().stream());
3133
}
3234

33-
/**
34-
* List all CompasFlows in this LDevice
35-
*
36-
* @return list of ExtRefs. List is modifiable.
37-
*/
38-
public Stream<TCompasFlow> getCompasFlows(TLDevice tlDevice) {
39-
return getInputs(tlDevice).stream()
40-
.flatMap(tInputs -> PrivateUtils.extractCompasPrivates(tlDevice.getLN0().getInputs(), TCompasFlow.class));
41-
}
42-
43-
/**
44-
* Find CompasFlows that match given ExtRef
45-
*
46-
* @param inputs inputs containing Privates CompasFlow and TExtRefs
47-
* @param tExtRef corresponding to CompasFlow we are searching
48-
* @return list of matching CompasFlows
49-
*/
50-
public Stream<TCompasFlow> getMatchingCompasFlows(TInputs inputs, TExtRef tExtRef) {
51-
return PrivateUtils.extractCompasPrivates(inputs, TCompasFlow.class)
52-
.filter(compasFlow -> isMatchingExtRef(compasFlow, tExtRef));
53-
}
54-
5535
/**
5636
* Debind ExtRef
5737
*
@@ -73,25 +53,6 @@ public void clearExtRefBinding(TExtRef extRef) {
7353
extRef.unsetSrcLNClass();
7454
}
7555

76-
77-
/**
78-
* Check if extRef matches CompasFlow
79-
*
80-
* @param compasFlow compasFlow
81-
* @param extRef extRef
82-
* @return true if all required attributes matches. Note that empty string, whitespaces only string and null values are considered as matching
83-
* (missing attributes matches attribute with empty string value or whitespaces only). Return false otherwise.
84-
*/
85-
private boolean isMatchingExtRef(TCompasFlow compasFlow, TExtRef extRef) {
86-
String extRefLnClass = extRef.isSetLnClass() ? extRef.getLnClass().get(0) : null;
87-
return Utils.equalsOrBothBlank(compasFlow.getDataStreamKey(), extRef.getDesc())
88-
&& Utils.equalsOrBothBlank(compasFlow.getExtRefiedName(), extRef.getIedName())
89-
&& Utils.equalsOrBothBlank(compasFlow.getExtRefldinst(), extRef.getLdInst())
90-
&& Utils.equalsOrBothBlank(compasFlow.getExtRefprefix(), extRef.getPrefix())
91-
&& Utils.equalsOrBothBlank(compasFlow.getExtReflnClass(), extRefLnClass)
92-
&& Utils.equalsOrBothBlank(compasFlow.getExtReflnInst(), extRef.getLnInst());
93-
}
94-
9556
/**
9657
* Checks if two ExtRefs fed by same Control Block
9758
*

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/util/PrivateEnum.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public enum PrivateEnum {
2121

2222
COMPAS_BAY("COMPAS-Bay", TCompasBay.class),
2323
COMPAS_CRITERIA("COMPAS-Criteria", TCompasCriteria.class),
24-
COMPAS_FLOW("COMPAS-Flow", TCompasFlow.class),
2524
COMPAS_FUNCTION("COMPAS-Function", TCompasFunction.class),
2625
COMPAS_ICDHEADER("COMPAS-ICDHeader", TCompasICDHeader.class),
2726
COMPAS_LDEVICE("COMPAS-LDevice", TCompasLDevice.class),

sct-commons/src/test/java/org/lfenergy/compas/sct/commons/scl/ExtRefServiceTest.java

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@
66

77
package org.lfenergy.compas.sct.commons.scl;
88

9-
import org.assertj.core.groups.Tuple;
109
import org.junit.jupiter.api.BeforeEach;
1110
import org.junit.jupiter.api.Test;
1211
import org.junit.jupiter.params.ParameterizedTest;
1312
import org.junit.jupiter.params.provider.Arguments;
1413
import org.junit.jupiter.params.provider.MethodSource;
1514
import org.lfenergy.compas.scl2007b4.model.*;
16-
import org.lfenergy.compas.sct.commons.util.PrivateEnum;
1715

1816
import java.util.List;
1917
import java.util.stream.Stream;
@@ -68,40 +66,6 @@ private static Stream<Arguments> provideLDevices() {
6866
);
6967
}
7068

71-
@Test
72-
void getCompasFlows_should_return_compasFlow() {
73-
// Given
74-
TLDevice tlDevice = new TLDevice();
75-
tlDevice.setLN0(new LN0());
76-
TInputs tInputs = new TInputs();
77-
tlDevice.getLN0().setInputs(tInputs);
78-
TPrivate tPrivate = new TPrivate();
79-
tPrivate.setType(PrivateEnum.COMPAS_FLOW.getPrivateType());
80-
tPrivate.getContent().add(new ObjectFactory().createFlow(new TCompasFlow()));
81-
tInputs.getPrivate().add(tPrivate);
82-
// When
83-
Stream<TCompasFlow> result = extRefService.getCompasFlows(tlDevice);
84-
// Then
85-
assertThat(result).hasSize(1);
86-
}
87-
88-
@Test
89-
void getMatchingCompasFlows_should_succeed() {
90-
//Given
91-
TInputs tInputs = new TInputs();
92-
TExtRef tExtRef1 = createExtRef("Desc_1", "IED_Name_1", "LD_INST_1");
93-
tInputs.getExtRef().add(tExtRef1);
94-
TCompasFlow tCompasFlow1 = createCompasFlow("Desc_1", "IED_Name_1", "LD_INST_1");
95-
TCompasFlow tCompasFlow2 = createCompasFlow("Desc_2", "IED_Name_2", "LD_INST_2");
96-
tInputs.getPrivate().add(createPrivateCompasFlow(List.of(tCompasFlow1, tCompasFlow2)));
97-
//When
98-
Stream<TCompasFlow> matchingCompasFlows = extRefService.getMatchingCompasFlows(tInputs, tExtRef1);
99-
//Then
100-
assertThat(matchingCompasFlows).hasSize(1)
101-
.map(TCompasFlow::getDataStreamKey, TCompasFlow::getExtRefiedName)
102-
.containsExactly(Tuple.tuple("Desc_1", "IED_Name_1"));
103-
}
104-
10569
@Test
10670
void clearExtRefBinding_should_remove_binding() {
10771
//Given
@@ -211,13 +175,6 @@ void filterDuplicatedExtRefs_should_not_remove_not_duplicated_extrefs() {
211175
.hasSize(6);
212176
}
213177

214-
private static TPrivate createPrivateCompasFlow(List<TCompasFlow> compasFlows) {
215-
TPrivate tPrivate = new TPrivate();
216-
tPrivate.setType(PrivateEnum.COMPAS_FLOW.getPrivateType());
217-
tPrivate.getContent().addAll(compasFlows.stream().map(value -> new ObjectFactory().createFlow(value)).toList());
218-
return tPrivate;
219-
}
220-
221178
private TExtRef createExtRef(String desc, String iedName, String ldInst) {
222179
TExtRef tExtRef1 = new TExtRef();
223180
tExtRef1.setDesc(desc);
@@ -228,14 +185,4 @@ private TExtRef createExtRef(String desc, String iedName, String ldInst) {
228185
return tExtRef1;
229186
}
230187

231-
private TCompasFlow createCompasFlow(String dataStreamKey, String extRefIedName, String extRefLdInst) {
232-
TCompasFlow tCompasFlow = new TCompasFlow();
233-
tCompasFlow.setDataStreamKey(dataStreamKey);
234-
tCompasFlow.setExtRefiedName(extRefIedName);
235-
tCompasFlow.setExtRefldinst(extRefLdInst);
236-
tCompasFlow.setExtReflnClass("LN");
237-
tCompasFlow.setExtReflnInst("1");
238-
return tCompasFlow;
239-
}
240-
241188
}

sct-commons/src/test/java/org/lfenergy/compas/sct/commons/testhelpers/SclHelper.java

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.lfenergy.compas.sct.commons.scl.ln.LN0Adapter;
1414
import org.lfenergy.compas.sct.commons.scl.ln.LNAdapter;
1515
import org.lfenergy.compas.sct.commons.util.ControlBlockEnum;
16-
import org.lfenergy.compas.sct.commons.util.PrivateUtils;
1716
import org.lfenergy.compas.sct.commons.util.Utils;
1817
import org.opentest4j.AssertionFailedError;
1918

@@ -74,13 +73,6 @@ public static TExtRef findExtRef(SCL scl, String iedName, String ldInst, String
7473
.orElseThrow(() -> new AssertionFailedError(String.format("ExtRef.desc=%s not found in IED.name=%s,LDevice.inst=%s", extRefDesc, iedName, ldInst)));
7574
}
7675

77-
public static TCompasFlow findCompasFlow(SCL scl, String iedName, String ldInst, String compasFlowDataStreamKey) {
78-
return PrivateUtils.extractCompasPrivates(findInputs(scl, iedName, ldInst).getCurrentElem(), TCompasFlow.class)
79-
.filter(compasFlow -> compasFlowDataStreamKey.equals(compasFlow.getDataStreamKey()))
80-
.findFirst()
81-
.orElseThrow(() -> new AssertionFailedError(String.format("CompasFlow.dataStreamKey=%s not found in IED.name=%s,LDevice.inst=%s", compasFlowDataStreamKey, iedName, ldInst)));
82-
}
83-
8476
public static LN0Adapter findLn0(SCL scl, String iedName, String ldInst) {
8577
LDeviceAdapter lDevice = findLDevice(scl, iedName, ldInst);
8678
if (!lDevice.hasLN0()) {
@@ -170,14 +162,6 @@ public static DataSetAdapter findDataSet(SCL scl, String iedName, String ldInst,
170162
dataSetName, iedName, ldInst)));
171163
}
172164

173-
public static ControlBlockAdapter findControlBlock(SCL scl, String iedName, String ldInst, String cbName,
174-
ControlBlockEnum controlBlockEnum) {
175-
LN0Adapter ln0 = findLn0(scl, iedName, ldInst);
176-
return ln0.findControlBlock(cbName, controlBlockEnum)
177-
.orElseThrow(() -> new AssertionFailedError(String.format("%s name=%s not found in IED.name=%s,LDevice.inst=%s,LN0",
178-
controlBlockEnum.getControlBlockClass().getSimpleName(), cbName, iedName, ldInst)));
179-
}
180-
181165
public static <T extends TControl> T findControlBlock(SCL scl, String iedName, String ldInst, String cbName, Class<T> controlBlockClass) {
182166
LN0Adapter ln0 = findLn0(scl, iedName, ldInst);
183167
return ln0.getTControlsByType(controlBlockClass).stream()
@@ -213,12 +197,6 @@ public static Stream<TDataSet> streamAllDataSets(SCL scl) {
213197
.flatMap(List::stream);
214198
}
215199

216-
public static <T extends TControl> Stream<T> streamAllControlBlocks(SCL scl, Class<T> controlBlockClass) {
217-
return streamAllLn0Adapters(scl)
218-
.map(ln0Adapter -> ln0Adapter.getTControlsByType(controlBlockClass))
219-
.flatMap(List::stream);
220-
}
221-
222200
public static Stream<LN0Adapter> streamAllLn0Adapters(SCL scl) {
223201
return new SclRootAdapter(scl)
224202
.streamIEDAdapters()
@@ -253,16 +231,6 @@ public static Stream<String> streamAllConnectedApGseP(SCL scd, String pType) {
253231
.map(TP::getValue);
254232
}
255233

256-
public static TConnectedAP addConnectedAp(SCL scd, String subNetworkName, String apName, String iedName) {
257-
scd.setCommunication(new TCommunication());
258-
TSubNetwork subNetwork = new TSubNetwork();
259-
subNetwork.setName(subNetworkName);
260-
scd.getCommunication().getSubNetwork().add(subNetwork);
261-
TConnectedAP connectedAP = newConnectedAp(iedName, apName);
262-
subNetwork.getConnectedAP().add(connectedAP);
263-
return connectedAP;
264-
}
265-
266234
public static SclRootAdapter createSclRootAdapterWithIed(String iedName) {
267235
SCL scl = new SCL();
268236
scl.setHeader(new THeader());

0 commit comments

Comments
 (0)