View Javadoc
1   package de.dlr.shepard.neo4Core.dao;
2   
3   import java.util.Collections;
4   import java.util.List;
5   import java.util.stream.StreamSupport;
6   
7   import de.dlr.shepard.neo4Core.entities.URIReference;
8   import de.dlr.shepard.util.Constants;
9   import de.dlr.shepard.util.CypherQueryHelper;
10  
11  public class URIReferenceDAO extends VersionableEntityDAO<URIReference> {
12  
13  	/**
14  	 * Searches the database for references.
15  	 *
16  	 * @param dataObjectId identifies the dataObject
17  	 * @return a List of references
18  	 */
19  	public List<URIReference> findByDataObjectNeo4jId(long dataObjectId) {
20  		String query = String.format("MATCH (d:DataObject)-[hr:has_reference]->%s WHERE ID(d)=%d ",
21  				CypherQueryHelper.getObjectPart("r", "URIReference", false), dataObjectId)
22  				+ CypherQueryHelper.getReturnPart("r");
23  
24  		var queryResult = findByQuery(query, Collections.emptyMap());
25  
26  		List<URIReference> result = StreamSupport.stream(queryResult.spliterator(), false)
27  				.filter(r -> r.getDataObject() != null).filter(r -> r.getDataObject().getId().equals(dataObjectId))
28  				.toList();
29  
30  		return result;
31  	}
32  
33  	public List<URIReference> findByDataObjectShepardId(long dataObjectShepardId) {
34  		String query = String.format(
35  				"MATCH (d:DataObject)-[hr:has_reference]->%s WHERE d." + Constants.SHEPARD_ID + "=%d ",
36  				CypherQueryHelper.getObjectPart("r", "URIReference", false), dataObjectShepardId)
37  				+ CypherQueryHelper.getReturnPart("r");
38  
39  		var queryResult = findByQuery(query, Collections.emptyMap());
40  
41  		List<URIReference> result = StreamSupport.stream(queryResult.spliterator(), false)
42  				.filter(r -> r.getDataObject() != null)
43  				.filter(r -> r.getDataObject().getShepardId().equals(dataObjectShepardId)).toList();
44  
45  		return result;
46  	}
47  
48  	@Override
49  	public Class<URIReference> getEntityType() {
50  		return URIReference.class;
51  	}
52  
53  }