View Javadoc
1   package de.dlr.shepard.context.references.spatialdata.daos;
2   
3   import de.dlr.shepard.common.util.CypherQueryHelper;
4   import de.dlr.shepard.context.references.spatialdata.entities.SpatialDataReference;
5   import de.dlr.shepard.context.version.daos.VersionableEntityDAO;
6   import jakarta.enterprise.context.RequestScoped;
7   import java.util.Collections;
8   import java.util.List;
9   import java.util.stream.StreamSupport;
10  
11  @RequestScoped
12  public class SpatialDataReferenceDAO extends VersionableEntityDAO<SpatialDataReference> {
13  
14    public List<SpatialDataReference> findByDataObjectShepardId(long dataObjectShepardId) {
15      String query =
16        String.format(
17          "MATCH (d:DataObject {shepardId: %d})-[hr:has_reference]->%s",
18          dataObjectShepardId,
19          CypherQueryHelper.getObjectPart("r", "SpatialDataReference", false)
20        ) +
21        CypherQueryHelper.getReturnPart("r");
22      var queryResult = findByQuery(query, Collections.emptyMap());
23  
24      List<SpatialDataReference> result = StreamSupport.stream(queryResult.spliterator(), false)
25        .filter(r -> r.getDataObject() != null && r.getDataObject().getShepardId().equals(dataObjectShepardId))
26        .toList();
27  
28      return result;
29    }
30  
31    @Override
32    public Class<SpatialDataReference> getEntityType() {
33      return SpatialDataReference.class;
34    }
35  }