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