View Javadoc
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  }