1 package de.dlr.shepard.context.semantic.daos;
2
3 import de.dlr.shepard.common.neo4j.daos.GenericDAO;
4 import de.dlr.shepard.common.util.Constants;
5 import de.dlr.shepard.common.util.CypherQueryHelper;
6 import de.dlr.shepard.common.util.CypherQueryHelper.Neighborhood;
7 import de.dlr.shepard.context.semantic.entities.SemanticAnnotation;
8 import jakarta.enterprise.context.RequestScoped;
9 import java.util.Collections;
10 import java.util.List;
11 import java.util.stream.StreamSupport;
12
13 @RequestScoped
14 public class SemanticAnnotationDAO extends GenericDAO<SemanticAnnotation> {
15
16 public List<SemanticAnnotation> findAllSemanticAnnotationsByNeo4jId(long entityId) {
17 String query;
18 query = String.format(
19 "MATCH (e)-[ha:has_annotation]->(a:SemanticAnnotation) WHERE ID(e)=%d WITH a %s",
20 entityId,
21 CypherQueryHelper.getReturnPart("a", Neighborhood.OUTGOING)
22 );
23 var queryResult = findByQuery(query, Collections.emptyMap());
24 var ret = StreamSupport.stream(queryResult.spliterator(), false).toList();
25 return ret;
26 }
27
28 public List<SemanticAnnotation> findAllSemanticAnnotationsByShepardId(long shepardId) {
29 String query;
30 query = String.format(
31 "MATCH (e)-[ha:has_annotation]->(a:SemanticAnnotation) WHERE e." + Constants.SHEPARD_ID + "=%d WITH a %s",
32 shepardId,
33 CypherQueryHelper.getReturnPart("a", Neighborhood.OUTGOING)
34 );
35 var queryResult = findByQuery(query, Collections.emptyMap());
36 var ret = StreamSupport.stream(queryResult.spliterator(), false).toList();
37 return ret;
38 }
39
40 @Override
41 public Class<SemanticAnnotation> getEntityType() {
42 return SemanticAnnotation.class;
43 }
44 }