1212import org .lfenergy .compas .sct .commons .util .ActiveStatus ;
1313
1414import java .util .ArrayList ;
15- import java .util .Collection ;
1615import java .util .List ;
1716import java .util .Optional ;
1817import java .util .function .Predicate ;
@@ -60,33 +59,37 @@ public Optional<TLN> findLn(TLDevice tlDevice, Predicate<TLN> lnPredicate) {
6059 * @return the Lnode Status
6160 */
6261 public ActiveStatus getLnStatus (TAnyLN tAnyLN , LN0 ln0 ) {
63- Optional <ActiveStatus > ln0Status = getDaiModStval (ln0 );
64- return getDaiModStval (tAnyLN ).filter (ActiveStatus .OFF ::equals ).orElseGet (() -> ln0Status .orElse (ActiveStatus .OFF ));
62+ Optional <ActiveStatus > ln0Status = getDaiModStValValue (ln0 );
63+ return getDaiModStValValue (tAnyLN ).filter (ActiveStatus .OFF ::equals ).orElseGet (() -> ln0Status .orElse (ActiveStatus .OFF ));
6564 }
6665
67- public Optional <ActiveStatus > getDaiModStval (TAnyLN tAnyLN ) {
66+ public Optional <ActiveStatus > getDaiModStValValue (TAnyLN tAnyLN ) {
67+ return getDaiModStVal (tAnyLN )
68+ .stream ()
69+ .flatMap (tdai -> tdai .getVal ().stream ())
70+ .map (TVal ::getValue )
71+ .findFirst ()
72+ .map (ActiveStatus ::fromValue );
73+ }
74+
75+ public Optional <TDAI > getDaiModStVal (TAnyLN tAnyLN ) {
6876 return tAnyLN
6977 .getDOI ()
7078 .stream ()
7179 .filter (tdoi -> MOD_DO_NAME .equals (tdoi .getName ()))
72- .findFirst ()
73- .flatMap (tdoi -> tdoi .getSDIOrDAI ()
74- .stream ()
75- .filter (dai -> dai .getClass ().equals (TDAI .class ))
76- .map (TDAI .class ::cast )
77- .filter (tdai -> STVAL_DA_NAME .equals (tdai .getName ()))
78- .map (TDAI ::getVal )
79- .flatMap (Collection ::stream )
80- .findFirst ()
81- .map (TVal ::getValue ))
82- .map (ActiveStatus ::fromValue );
80+ .flatMap (tdoi -> tdoi .getSDIOrDAI ().stream ())
81+ .filter (TDAI .class ::isInstance )
82+ .map (TDAI .class ::cast )
83+ .filter (tdai -> STVAL_DA_NAME .equals (tdai .getName ()))
84+ .findFirst ();
8385 }
86+
8487 public Stream <TAnyLN > getActiveLns (TLDevice tlDevice ) {
8588 LN0 ln0 = tlDevice .getLN0 ();
8689 Stream <TLN > tlnStream = tlDevice .getLN ()
8790 .stream ()
8891 .filter (tln -> ActiveStatus .ON .equals (getLnStatus (tln , ln0 )));
89- Stream <LN0 > ln0Stream = Stream .of (ln0 ).filter (ln02 -> getDaiModStval (ln02 ).map (ActiveStatus .ON ::equals ).orElse (false ));
92+ Stream <LN0 > ln0Stream = Stream .of (ln0 ).filter (ln02 -> getDaiModStValValue (ln02 ).map (ActiveStatus .ON ::equals ).orElse (false ));
9093 return Stream .concat (ln0Stream , tlnStream );
9194 }
9295
@@ -99,7 +102,7 @@ public Optional<TDAI> getDOAndDAInstances(TAnyLN tAnyLN, DoLinkedToDaFilter doLi
99102 return tAnyLN .getDOI ().stream ().filter (doi -> doi .getName ().equals (doLinkedToDaFilter .doName ()))
100103 .findFirst ()
101104 .flatMap (doi -> {
102- if (structNamesList .size () > 1 ) {
105+ if (structNamesList .size () > 1 ) {
103106 String firstSDIName = structNamesList .removeFirst ();
104107 return this .getSdiByName (doi , firstSDIName )
105108 .map (intermediateSdi -> findSDIByStructName (intermediateSdi , structNamesList ))
@@ -116,7 +119,7 @@ public Optional<TDAI> getDOAndDAInstances(TAnyLN tAnyLN, DoLinkedToDaFilter doLi
116119 return Optional .empty ();
117120 })
118121 .stream ().findFirst ();
119- } else if (structNamesList .size () == 1 ){
122+ } else if (structNamesList .size () == 1 ) {
120123 return doi .getSDIOrDAI ().stream ()
121124 .filter (unNaming -> unNaming .getClass ().equals (TDAI .class ))
122125 .map (TDAI .class ::cast )
@@ -138,7 +141,7 @@ public void updateOrCreateDOAndDAInstances(TAnyLN tAnyLN, DoLinkedToDa doLinkedT
138141 .ifPresentOrElse (tVal -> tVal .setValue (value ),
139142 () -> tdai .getVal ().add (newVal (value )));
140143 } else {
141- for (DaVal daVal : daiVals ) {
144+ for (DaVal daVal : daiVals ) {
142145 tdai .getVal ().stream ()
143146 .filter (tValElem -> tValElem .isSetSGroup () && tValElem .getSGroup () == daVal .settingGroup ())
144147 .findFirst ()
@@ -198,22 +201,22 @@ private Optional<TDAI> createDoiSdiDaiChainIfNotExists(TAnyLN tAnyLN, DataObject
198201
199202 TDOI doi = tAnyLN .getDOI ().stream ().filter (doi1 -> doi1 .getName ().equals (dataObject .getDoName ()))
200203 .findFirst ()
201- .orElseGet (()-> {
204+ .orElseGet (() -> {
202205 TDOI newDOI = new TDOI ();
203206 newDOI .setName (dataObject .getDoName ());
204207 tAnyLN .getDOI ().add (newDOI );
205208 return newDOI ;
206209 });
207- if (structInstances .size () > 1 ){
210+ if (structInstances .size () > 1 ) {
208211 TSDI firstSDI = findOrCreateSDIFromDOI (doi , structInstances .getFirst ());
209212 TSDI lastSDI = findOrCreateSDIByStructName (firstSDI , structInstances );
210- if (structInstances .size () == 1 ){
213+ if (structInstances .size () == 1 ) {
211214 return lastSDI .getSDIOrDAI ().stream ()
212215 .filter (tUnNaming -> tUnNaming .getClass ().equals (TDAI .class ))
213216 .map (TDAI .class ::cast )
214217 .filter (tdai -> tdai .getName ().equals (structInstances .getFirst ()))
215218 .map (tdai -> {
216- if (tdai .isSetValImport ()) {
219+ if (tdai .isSetValImport ()) {
217220 tdai .setValImport (dataAttribute .isValImport ());
218221 }
219222 return tdai ;
@@ -226,13 +229,13 @@ private Optional<TDAI> createDoiSdiDaiChainIfNotExists(TAnyLN tAnyLN, DataObject
226229 return Optional .of (newDAI );
227230 });
228231 }
229- } else if (structInstances .size () == 1 ){
232+ } else if (structInstances .size () == 1 ) {
230233 return doi .getSDIOrDAI ().stream ()
231234 .filter (tUnNaming -> tUnNaming .getClass ().equals (TDAI .class ))
232235 .map (TDAI .class ::cast )
233236 .filter (tdai -> tdai .getName ().equals (structInstances .getFirst ()))
234237 .map (tdai -> {
235- if (tdai .isSetValImport ()) tdai .setValImport (dataAttribute .isValImport ());
238+ if (tdai .isSetValImport ()) tdai .setValImport (dataAttribute .isValImport ());
236239 return tdai ;
237240 })
238241 .findFirst ()
@@ -247,7 +250,7 @@ private Optional<TDAI> createDoiSdiDaiChainIfNotExists(TAnyLN tAnyLN, DataObject
247250 }
248251
249252 private TSDI findSDIByStructName (TSDI tsdi , List <String > sdiNames ) {
250- if (sdiNames .isEmpty ()) return tsdi ;
253+ if (sdiNames .isEmpty ()) return tsdi ;
251254 return this .getSdiByName (tsdi , sdiNames .getFirst ())
252255 .map (sdi1 -> {
253256 sdiNames .removeFirst ();
@@ -294,14 +297,13 @@ private Optional<TSDI> getSdiByName(TSDI sdi, String sdiName) {
294297 }
295298
296299 /**
297- *
298- * @param sdi TSDI
300+ * @param sdi TSDI
299301 * @param structName list start with sdi name
300302 * @return already existing TSDI or newly created TSDI from given TSDI
301303 */
302304 private TSDI findOrCreateSDIByStructName (TSDI sdi , List <String > structName ) {
303305 structName .removeFirst ();
304- if (structName .isEmpty () || structName .size () == 1 ) return sdi ;
306+ if (structName .isEmpty () || structName .size () == 1 ) return sdi ;
305307 return findOrCreateSDIByStructName (findOrCreateSDIFromSDI (sdi , structName .getFirst ()), structName );
306308 }
307309
0 commit comments