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 }