View Javadoc
1   package de.dlr.shepard.context.references.timeseriesreference.daos;
2   
3   import de.dlr.shepard.common.util.Constants;
4   import de.dlr.shepard.common.util.CypherQueryHelper;
5   import de.dlr.shepard.context.references.timeseriesreference.model.TimeseriesReference;
6   import de.dlr.shepard.context.version.daos.VersionableEntityDAO;
7   import jakarta.enterprise.context.RequestScoped;
8   import java.util.Collections;
9   import java.util.List;
10  import java.util.stream.StreamSupport;
11  
12  @RequestScoped
13  public class TimeseriesReferenceDAO extends VersionableEntityDAO<TimeseriesReference> {
14  
15    /**
16     * Searches the database for references.
17     *
18     * @param dataObjectId identifies the dataObject
19     * @return a List of references
20     */
21    public List<TimeseriesReference> findByDataObjectNeo4jId(long dataObjectId) {
22      String query =
23        String.format(
24          "MATCH (d:DataObject)-[hr:has_reference]->%s WHERE ID(d)=%d ",
25          CypherQueryHelper.getObjectPart("r", "TimeseriesReference", false),
26          dataObjectId
27        ) +
28        CypherQueryHelper.getReturnPart("r");
29  
30      var queryResult = findByQuery(query, Collections.emptyMap());
31  
32      List<TimeseriesReference> result = StreamSupport.stream(queryResult.spliterator(), false)
33        .filter(r -> r.getDataObject() != null)
34        .filter(r -> r.getDataObject().getId().equals(dataObjectId))
35        .toList();
36  
37      return result;
38    }
39  
40    public List<TimeseriesReference> findByDataObjectShepardId(long dataObjectShepardId) {
41      String query =
42        String.format(
43          "MATCH (d:DataObject)-[hr:has_reference]->%s WHERE d." + Constants.SHEPARD_ID + "=%d ",
44          CypherQueryHelper.getObjectPart("r", "TimeseriesReference", false),
45          dataObjectShepardId
46        ) +
47        CypherQueryHelper.getReturnPart("r");
48  
49      var queryResult = findByQuery(query, Collections.emptyMap());
50  
51      List<TimeseriesReference> result = StreamSupport.stream(queryResult.spliterator(), false)
52        .filter(r -> r.getDataObject() != null)
53        .filter(r -> r.getDataObject().getShepardId().equals(dataObjectShepardId))
54        .toList();
55  
56      return result;
57    }
58  
59    @Override
60    public Class<TimeseriesReference> getEntityType() {
61      return TimeseriesReference.class;
62    }
63  }