TimeseriesContainerDAO.java

  1. package de.dlr.shepard.neo4Core.dao;

  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;

  6. import de.dlr.shepard.neo4Core.entities.TimeseriesContainer;
  7. import de.dlr.shepard.util.CypherQueryHelper;
  8. import de.dlr.shepard.util.QueryParamHelper;

  9. public class TimeseriesContainerDAO extends GenericDAO<TimeseriesContainer> {

  10.     public List<TimeseriesContainer> findAllTimeseriesContainers(QueryParamHelper params, String username) {
  11.         String query;
  12.         Map<String, Object> paramsMap = new HashMap<>();
  13.         paramsMap.put("name", params.getName());
  14.         if (params.hasPagination()) {
  15.             paramsMap.put("offset", params.getPagination().getOffset());
  16.             paramsMap.put("size", params.getPagination().getSize());
  17.         }

  18.         query = String.format("MATCH %s WHERE %s WITH c",
  19.                 CypherQueryHelper.getObjectPart("c", "TimeseriesContainer", params.hasName()),
  20.                 CypherQueryHelper.getReadableByQuery("c", username));
  21.         if (params.hasOrderByAttribute()) {
  22.             query += " " + CypherQueryHelper.getOrderByPart("c", params.getOrderByAttribute(), params.getOrderDesc());
  23.         }
  24.         if (params.hasPagination()) {
  25.             query += " " + CypherQueryHelper.getPaginationPart();
  26.         }
  27.         query += " " + CypherQueryHelper.getReturnPart("c", true);
  28.         var result = new ArrayList<TimeseriesContainer>();
  29.         for (var container : findByQuery(query, paramsMap)) {
  30.             if (matchName(container, params.getName())) {
  31.                 result.add(container);
  32.             }
  33.         }
  34.         return result;
  35.     }

  36.     private boolean matchName(TimeseriesContainer container, String name) {
  37.         return name == null || container.getName().equalsIgnoreCase(name);
  38.     }

  39.     @Override
  40.     public Class<TimeseriesContainer> getEntityType() {
  41.         return TimeseriesContainer.class;
  42.     }

  43. }