CollectionSearcher.java

  1. package de.dlr.shepard.search.unified;

  2. import de.dlr.shepard.neo4Core.dao.SearchDAO;
  3. import de.dlr.shepard.neo4Core.io.BasicEntityIO;
  4. import de.dlr.shepard.search.Neo4jEmitter;
  5. import de.dlr.shepard.util.Constants;
  6. import jakarta.enterprise.context.RequestScoped;
  7. import jakarta.inject.Inject;

  8. @RequestScoped
  9. public class CollectionSearcher implements ISearcher {

  10.   private SearchDAO searchDAO;

  11.   CollectionSearcher() {}

  12.   @Inject
  13.   public CollectionSearcher(SearchDAO searchDAO) {
  14.     this.searchDAO = searchDAO;
  15.   }

  16.   @Override
  17.   public ResponseBody search(SearchBody searchBody, String userName) {
  18.     String selectionQuery = Neo4jEmitter.emitCollectionSelectionQuery(
  19.       searchBody.getSearchParams().getQuery(),
  20.       userName
  21.     );
  22.     var resultList = searchDAO.findCollections(selectionQuery, Constants.COLLECTION_IN_QUERY);
  23.     ResultTriple[] resultTriples = new ResultTriple[resultList.size()];
  24.     BasicEntityIO[] results = new BasicEntityIO[resultList.size()];
  25.     for (int i = 0; i < resultList.size(); i++) {
  26.       resultTriples[i] = new ResultTriple(resultList.get(i).getShepardId());
  27.       results[i] = new BasicEntityIO(resultList.get(i));
  28.     }
  29.     ResponseBody responseBody = new ResponseBody(resultTriples, results, searchBody.getSearchParams());
  30.     return responseBody;
  31.   }
  32. }