12
12
import org .lfenergy .compas .sct .commons .domain .DoLinkedToDa ;
13
13
import org .lfenergy .compas .sct .commons .domain .DoLinkedToDaFilter ;
14
14
15
- import java .util .ArrayList ;
16
- import java .util .List ;
17
- import java .util .Optional ;
15
+ import java .util .*;
18
16
import java .util .function .Predicate ;
19
17
import java .util .stream .Stream ;
20
18
@@ -32,19 +30,18 @@ public class DataTypeTemplatesService implements DataTypeTemplateReader {
32
30
33
31
/**
34
32
* verify if DO(name=Mod)/DA(name=stVal) exists in DataTypeTemplate
35
- *
36
- * @param dtt TDataTypeTemplates where Data object and Data attribute exists
33
+ * @param dtt TDataTypeTemplates where Data object and Data attribute exists
37
34
* @param lNodeTypeId LNode Type ID where Data object exists
38
- * DataTypeTemplates model :
39
- * <DataTypeTemplates>
40
- * <LNodeType lnClass="LNodeTypeClass" id="LNodeTypeID">
41
- * <DO name="Mod" type="DOModTypeID" ../>
42
- * </LNodeType>
43
- * ...
44
- * <DOType cdc="DOTypeCDC" id="DOModTypeID">
45
- * <DA name="stVal" ../>
46
- * </DOType>
47
- * </DataTypeTemplates>
35
+ * DataTypeTemplates model :
36
+ * <DataTypeTemplates>
37
+ * <LNodeType lnClass="LNodeTypeClass" id="LNodeTypeID">
38
+ * <DO name="Mod" type="DOModTypeID" ../>
39
+ * </LNodeType>
40
+ * ...
41
+ * <DOType cdc="DOTypeCDC" id="DOModTypeID">
42
+ * <DA name="stVal" ../>
43
+ * </DOType>
44
+ * </DataTypeTemplates>
48
45
* @return true if the Data Object (Mod) and Data attribute (stVal) present, false otherwise
49
46
*/
50
47
public boolean isDoModAndDaStValExist (TDataTypeTemplates dtt , String lNodeTypeId ) {
@@ -57,14 +54,16 @@ public boolean isDoModAndDaStValExist(TDataTypeTemplates dtt, String lNodeTypeId
57
54
58
55
@ Override
59
56
public Stream <DoLinkedToDa > getAllDoLinkedToDa (TDataTypeTemplates dtt ) {
60
- return lnodeTypeService .getLnodeTypes (dtt )
57
+ return lnodeTypeService .getLnodeTypes (dtt )
61
58
.flatMap (tlNodeType -> {
62
- DoLinkedToDa doLinkedToDa = new DoLinkedToDa (new DataObject (), new DataAttribute ());
59
+ DoLinkedToDa doLinkedToDa = new DoLinkedToDa ();
60
+ doLinkedToDa .setDataObject (new DataObject ());
61
+ doLinkedToDa .setDataAttribute (new DataAttribute ());
63
62
return tlNodeType .getDO ()
64
63
.stream ()
65
64
.map (tdo -> doTypeService .findDoType (dtt , tdoType -> tdoType .getId ().equals (tdo .getType ()))
66
65
.map (doType -> {
67
- doLinkedToDa .dataObject ().setDoName (tdo .getName ());
66
+ doLinkedToDa .getDataObject ().setDoName (tdo .getName ());
68
67
return doTypeService .getAllSDOLinkedToDa (dtt , doType , doLinkedToDa ).stream ();
69
68
}))
70
69
.filter (Optional ::isPresent )
@@ -79,49 +78,41 @@ public Stream<DoLinkedToDa> getFilteredDoLinkedToDa(TDataTypeTemplates dtt, Stri
79
78
.flatMap (tlNodeType -> doService .getFilteredDos (tlNodeType , tdo -> StringUtils .isBlank (doLinkedToDaFilter .doName ())
80
79
|| doLinkedToDaFilter .doName ().equals (tdo .getName ()))
81
80
.flatMap (tdo -> {
81
+ DoLinkedToDa doLinkedToDa = new DoLinkedToDa ();
82
82
DataObject dataObject = new DataObject ();
83
83
dataObject .setDoName (tdo .getName ());
84
- DoLinkedToDa doLinkedToDa = new DoLinkedToDa (dataObject , new DataAttribute ());
84
+ doLinkedToDa .setDataObject (dataObject );
85
+ doLinkedToDa .setDataAttribute (new DataAttribute ());
85
86
return doTypeService .findDoType (dtt , tdoType -> tdoType .getId ().equals (tdo .getType ()))
86
87
.stream ()
87
88
.flatMap (tdoType -> {
88
- doLinkedToDa .dataObject ().setCdc (tdoType .getCdc ());
89
+ doLinkedToDa .getDataObject ().setCdc (tdoType .getCdc ());
89
90
return doTypeService .getAllSDOLinkedToDa (dtt , tdoType , doLinkedToDa ).stream ()
90
91
.filter (doLinkedToDa1 -> StringUtils .isBlank (doLinkedToDaFilter .doName ())
91
92
|| (doLinkedToDa1 .getDoRef ().startsWith (doLinkedToDaFilter .getDoRef ()) && StringUtils .isBlank (doLinkedToDaFilter .daName ()))
92
93
|| doLinkedToDa1 .getDaRef ().startsWith (doLinkedToDaFilter .getDaRef ()));
93
94
});
94
- }));
95
+ }));
95
96
}
96
97
97
98
@ Override
98
- public Optional <DoLinkedToDa > findDoLinkedToDa (TDataTypeTemplates dtt , String lNodeTypeId , DoLinkedToDaFilter doLinkedToDaFilter ) {
99
- List <String > dataRefList = new ArrayList <>(doLinkedToDaFilter . sdoNames ());
100
- dataRefList .addAll (doLinkedToDaFilter . bdaNames ());
99
+ public Optional <DoLinkedToDa > findDoLinkedToDa (TDataTypeTemplates dtt , String lNodeTypeId , DoLinkedToDa doLinkedToDa ) {
100
+ List <String > dataRefList = new ArrayList <>(doLinkedToDa . getDataObject (). getSdoNames ());
101
+ dataRefList .addAll (doLinkedToDa . getDataAttribute (). getBdaNames ());
101
102
102
103
return lnodeTypeService .findLnodeType (dtt , lNodeType -> lNodeTypeId .equals (lNodeType .getId ()))
103
- .flatMap (lNodeType -> doService .findDo (lNodeType , tdo -> tdo .getName ().equals (doLinkedToDaFilter . doName ()))
104
+ .flatMap (lNodeType -> doService .findDo (lNodeType , tdo -> tdo .getName ().equals (doLinkedToDa . getDataObject (). getDoName ()))
104
105
// Search DoType for each DO
105
106
.flatMap (tdo -> doTypeService .findDoType (dtt , doType -> doType .getId ().equals (tdo .getType ()))
106
107
.flatMap (tdoType -> {
107
108
// Search last DoType from DOType (SDO) > DOType (SDO)
108
109
TDOType lastDoType = findDOTypeBySdoName (dtt , tdoType , dataRefList );
109
- // Prepare DataObject
110
- DataObject dataObject = new DataObject (tdo .getName (), tdoType .getCdc (), doLinkedToDaFilter .sdoNames ());
111
110
// Search first DA from last DoType
112
- return sdoOrDAService .findDA (lastDoType , tda -> tda .getName ().equals (doLinkedToDaFilter . daName ()))
111
+ return sdoOrDAService .findDA (lastDoType , tda1 -> tda1 .getName ().equals (doLinkedToDa . getDataAttribute (). getDaName ()))
113
112
.flatMap (tda -> {
114
- // Prepare DataAttribute
115
- DataAttribute dataAttribute = new DataAttribute ();
116
- dataAttribute .setDaName (tda .getName ());
117
- dataAttribute .setFc (tda .getFc ());
118
113
// Check if first DA is STRUCT or not
119
- if (!tda .getBType ().equals (TPredefinedBasicTypeEnum .STRUCT )) {
120
- dataAttribute .addDaVal (tda .getVal ());
121
- dataAttribute .setBType (tda .getBType ());
122
- dataAttribute .setType (tda .getType ());
123
- dataAttribute .setValImport (tda .isValImport ());
124
- return Optional .of (new DoLinkedToDa (dataObject , dataAttribute ));
114
+ if (!tda .getBType ().equals (TPredefinedBasicTypeEnum .STRUCT )) {
115
+ return Optional .of (doLinkedToDa );
125
116
}
126
117
// Search first DaType from DOType (from last DOType where DA is STRUCT)
127
118
return getDATypeByDaName (dtt , lastDoType , tda .getName ())
@@ -131,18 +122,11 @@ public Optional<DoLinkedToDa> findDoLinkedToDa(TDataTypeTemplates dtt, String lN
131
122
&& tbda .getBType ().equals (TPredefinedBasicTypeEnum .STRUCT ), dataRefList );
132
123
133
124
// last DAType should contain BDA not STRUCT
134
- if (dataRefList .size () != 1 ) return Optional .empty ();
125
+ if (dataRefList .size () != 1 ) return Optional .empty ();
135
126
String lastBdaName = dataRefList .getFirst ();
136
127
return bdaService .findBDA (lastDAType , tbda -> tbda .getName ().equals (lastBdaName )
137
128
&& !tbda .getBType ().equals (TPredefinedBasicTypeEnum .STRUCT ))
138
- .flatMap (tbda -> {
139
- dataAttribute .getBdaNames ().addAll (doLinkedToDaFilter .bdaNames ());
140
- dataAttribute .setBType (tbda .getBType ());
141
- dataAttribute .setType (tbda .getType ());
142
- dataAttribute .setValImport (tbda .isValImport ());
143
- dataAttribute .addDaVal (tbda .getVal ());
144
- return Optional .of (new DoLinkedToDa (dataObject , dataAttribute ));
145
- });
129
+ .flatMap (tbda -> Optional .of (doLinkedToDa ));
146
130
});
147
131
});
148
132
})
@@ -155,7 +139,7 @@ private Optional<TDAType> getDATypeByDaName(TDataTypeTemplates dtt, TDOType tdoT
155
139
}
156
140
157
141
private TDOType findDOTypeBySdoName (TDataTypeTemplates dtt , TDOType tdoType , List <String > sdoNames ) {
158
- if (sdoNames .isEmpty ()) return tdoType ;
142
+ if (sdoNames .isEmpty ()) return tdoType ;
159
143
return sdoOrDAService .findSDO (tdoType , tsdo -> tsdo .getName ().equals (sdoNames .getFirst ()))
160
144
.flatMap (tsdo -> doTypeService .findDoType (dtt , tdoType2 -> tdoType2 .getId ().equals (tsdo .getType ())))
161
145
.map (tdoType2 -> {
@@ -165,7 +149,7 @@ private TDOType findDOTypeBySdoName(TDataTypeTemplates dtt, TDOType tdoType, Lis
165
149
}
166
150
167
151
private TDAType findDATypeByBdaName (TDataTypeTemplates dtt , TDAType tdaType , Predicate <TBDA > tbdaPredicate , List <String > bdaNames ) {
168
- if (bdaNames .isEmpty ()) return tdaType ;
152
+ if (bdaNames .isEmpty ()) return tdaType ;
169
153
return bdaService .getFilteredBDAs (tdaType , tbdaPredicate )
170
154
.findFirst ()
171
155
.flatMap (tbda -> daTypeService .findDaType (dtt , tbda .getType ()))
0 commit comments