11package org .brapi .test .BrAPITestServer .service .pheno ;
22
33import java .util .*;
4- import java .util .stream .Collectors ;
54
65import jakarta .validation .Valid ;
76
87import org .brapi .test .BrAPITestServer .exceptions .BrAPIServerDbIdNotFoundException ;
98import org .brapi .test .BrAPITestServer .exceptions .BrAPIServerException ;
10- import org .brapi .test .BrAPITestServer .model .entity .BrAPIBaseEntity ;
11- import org .brapi .test .BrAPITestServer .model .entity .ExternalReferenceEntity ;
129import org .brapi .test .BrAPITestServer .model .entity .core .CropEntity ;
1310import org .brapi .test .BrAPITestServer .model .entity .pheno .*;
1411import org .brapi .test .BrAPITestServer .repository .core .TraitRepository ;
2421import org .slf4j .LoggerFactory ;
2522import org .springframework .beans .factory .annotation .Autowired ;
2623import org .springframework .data .domain .Page ;
27- import org .springframework .data .domain .PageRequest ;
2824import org .springframework .data .domain .Pageable ;
2925import org .springframework .http .HttpStatus ;
3026import org .springframework .stereotype .Service ;
@@ -143,14 +139,7 @@ public List<ObservationVariable> findObservationVariables(ObservationVariableSea
143139 log .debug ("Starting variable search" );
144140 Page <ObservationVariableEntity > page = observationVariableRepository .findAllBySearch (searchQuery , pageReq );
145141 log .debug ("Variable search complete" );
146- if (!page .isEmpty ()) {
147- observationVariableRepository .fetchXrefs (page , ObservationVariableEntity .class );
148- fetchSynonyms (page );
149- fetchMethodXrefs (page );
150- fetchScaleXrefs (page );
151- fetchScaleValidValueCategories (page );
152- fetchTraitXrefs (page );
153- }
142+
154143
155144 log .debug ("converting " +page .getSize ()+" entities" );
156145 List <ObservationVariable > observationVariables = page .map (this ::convertFromEntity ).getContent ();
@@ -159,75 +148,6 @@ public List<ObservationVariable> findObservationVariables(ObservationVariableSea
159148 return observationVariables ;
160149 }
161150
162- public void fetchSynonyms (Page <ObservationVariableEntity > page ) {
163- SearchQueryBuilder <ObservationVariableEntity > searchQuery = new SearchQueryBuilder <>(ObservationVariableEntity .class );
164- searchQuery .leftJoinFetch ("synonyms" , "synonyms" )
165- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
166-
167- Page <ObservationVariableEntity > synonyms = observationVariableRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
168-
169- Map <String , List <String >> synonymsByVar = new HashMap <>();
170- synonyms .forEach (entity -> synonymsByVar .put (entity .getId (), entity .getSynonyms ()));
171-
172- page .forEach (entity -> entity .setSynonyms (synonymsByVar .get (entity .getMethod ().getId ())));
173- }
174-
175- public void fetchMethodXrefs (Page <ObservationVariableEntity > page ) {
176- SearchQueryBuilder <MethodEntity > searchQuery = new SearchQueryBuilder <>(MethodEntity .class );
177- searchQuery .leftJoinFetch ("externalReferences" , "externalReferences" )
178- .join ("variables" , "variables" )
179- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "*variables.id" );
180-
181- Page <MethodEntity > xrefs = methodRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
182-
183- Map <String , List <ExternalReferenceEntity >> xrefByEntity = new HashMap <>();
184- xrefs .forEach (entity -> xrefByEntity .put (entity .getId (), entity .getExternalReferences ()));
185-
186- page .forEach (entity -> entity .getMethod ().setExternalReferences (xrefByEntity .get (entity .getMethod ().getId ())));
187- }
188-
189- public void fetchScaleXrefs (Page <ObservationVariableEntity > page ) {
190- SearchQueryBuilder <ScaleEntity > searchQuery = new SearchQueryBuilder <>(ScaleEntity .class );
191- searchQuery .leftJoinFetch ("externalReferences" , "externalReferences" )
192- .join ("variables" , "variables" )
193- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "*variables.id" );
194-
195- Page <ScaleEntity > xrefs = scaleRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
196-
197- Map <String , List <ExternalReferenceEntity >> xrefByEntity = new HashMap <>();
198- xrefs .forEach (entity -> xrefByEntity .put (entity .getId (), entity .getExternalReferences ()));
199-
200- page .forEach (entity -> entity .getScale ().setExternalReferences (xrefByEntity .get (entity .getMethod ().getId ())));
201- }
202-
203- public void fetchScaleValidValueCategories (Page <ObservationVariableEntity > page ) {
204- SearchQueryBuilder <ScaleEntity > searchQuery = new SearchQueryBuilder <>(ScaleEntity .class );
205- searchQuery .leftJoinFetch ("validValueCategories" , "validValueCategories" )
206- .join ("variables" , "variables" )
207- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "*variables.id" );
208-
209- Page <ScaleEntity > validValueCategories = scaleRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
210-
211- Map <String , List <ScaleValidValueCategoryEntity >> infoByEntity = new HashMap <>();
212- validValueCategories .forEach (entity -> infoByEntity .put (entity .getId (), entity .getValidValueCategories ()));
213-
214- page .forEach (entity -> entity .getScale ().setValidValueCategories (infoByEntity .get (entity .getId ())));
215- }
216-
217- public void fetchTraitXrefs (Page <ObservationVariableEntity > page ) {
218- SearchQueryBuilder <TraitEntity > searchQuery = new SearchQueryBuilder <>(TraitEntity .class );
219- searchQuery .leftJoinFetch ("externalReferences" , "externalReferences" )
220- .join ("variables" , "variables" )
221- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "*variables.id" );
222-
223- Page <TraitEntity > xrefs = traitRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
224-
225- Map <String , List <ExternalReferenceEntity >> xrefByEntity = new HashMap <>();
226- xrefs .forEach (entity -> xrefByEntity .put (entity .getId (), entity .getExternalReferences ()));
227-
228- page .forEach (entity -> entity .getTrait ().setExternalReferences (xrefByEntity .get (entity .getMethod ().getId ())));
229- }
230-
231151 public List <ObservationVariable > saveObservationVariables (@ Valid List <ObservationVariableNewRequest > body )
232152 throws BrAPIServerException {
233153 List <ObservationVariable > savedObservationVariables = new ArrayList <>();
0 commit comments