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
17
18
19
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 }