View Javadoc
1   package de.dlr.shepard.context.references.file.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.file.entities.FileReference;
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 FileReferenceDAO extends VersionableEntityDAO<FileReference> {
14  
15    public List<FileReference> findByDataObjectNeo4jId(long dataObjectId) {
16      String query =
17        "MATCH (d:DataObject)-[hr:has_reference]->%s WHERE ID(d)=%d ".formatted(
18            CypherQueryHelper.getObjectPart("r", "FileReference", false),
19            dataObjectId
20          ) +
21        CypherQueryHelper.getReturnPart("r");
22  
23      var queryResult = findByQuery(query, Collections.emptyMap());
24  
25      List<FileReference> result = StreamSupport.stream(queryResult.spliterator(), false)
26        .filter(r -> r.getDataObject() != null)
27        .filter(r -> r.getDataObject().getId().equals(dataObjectId))
28        .toList();
29  
30      return result;
31    }
32  
33    public List<FileReference> findByDataObjectShepardId(long dataObjectShepardId) {
34      String query =
35        String.format(
36          "MATCH (d:DataObject)-[hr:has_reference]->%s WHERE d." + Constants.SHEPARD_ID + "=%d ",
37          CypherQueryHelper.getObjectPart("r", "FileReference", false),
38          dataObjectShepardId
39        ) +
40        CypherQueryHelper.getReturnPart("r");
41      var queryResult = findByQuery(query, Collections.emptyMap());
42  
43      List<FileReference> result = StreamSupport.stream(queryResult.spliterator(), false)
44        .filter(r -> r.getDataObject() != null)
45        .filter(r -> r.getDataObject().getShepardId().equals(dataObjectShepardId))
46        .toList();
47  
48      return result;
49    }
50  
51    @Override
52    public Class<FileReference> getEntityType() {
53      return FileReference.class;
54    }
55  }