View Javadoc
1   package de.dlr.shepard.neo4Core.dao;
2   
3   import java.util.Collections;
4   
5   import de.dlr.shepard.neo4Core.entities.Permissions;
6   import de.dlr.shepard.util.Constants;
7   import de.dlr.shepard.util.CypherQueryHelper;
8   
9   public class PermissionsDAO extends GenericDAO<Permissions> {
10  
11  	public Permissions findByEntityNeo4jId(long entityId) {
12  		String query = String.format("MATCH (e)-[:has_permissions]->(p:Permissions) WHERE ID(e) = %d ", entityId)
13  				+ CypherQueryHelper.getReturnPart("p");
14  		var permissions = findByQuery(query, Collections.emptyMap());
15  		if (permissions.iterator().hasNext())
16  			return permissions.iterator().next();
17  		return null;
18  	}
19  
20  	public Permissions findByEntityShepardId(long entityShepardId) {
21  		String query = String.format(
22  				"MATCH (e)-[:has_permissions]->(p:Permissions) WHERE e." + Constants.SHEPARD_ID + " = %d ",
23  				entityShepardId) + CypherQueryHelper.getReturnPart("p");
24  		var permissions = findByQuery(query, Collections.emptyMap());
25  		if (permissions.iterator().hasNext())
26  			return permissions.iterator().next();
27  		return null;
28  	}
29  
30  	public Permissions createWithEntityNeo4jId(Permissions permissions, long entityId) {
31  		var created = createOrUpdate(permissions);
32  		String query = String.format(
33  				"MATCH (e) WHERE ID(e) = %d MATCH (p:Permissions) WHERE ID(p) = %d CREATE path = (e)-[r:has_permissions]->(p)",
34  				entityId, created.getId());
35  		runQuery(query, Collections.emptyMap());
36  		return findByNeo4jId(created.getId());
37  	}
38  
39  	public Permissions createWithEntityShepardId(Permissions permissions, long entityShepardId) {
40  		var created = createOrUpdate(permissions);
41  		String query = String.format(
42  				"MATCH (e) WHERE e." + Constants.SHEPARD_ID
43  						+ " = %d MATCH (p:Permissions) WHERE ID(p) = %d CREATE path = (e)-[r:has_permissions]->(p)",
44  				entityShepardId, created.getId());
45  		runQuery(query, Collections.emptyMap());
46  		return findByNeo4jId(created.getId());
47  	}
48  
49  	@Override
50  	public Class<Permissions> getEntityType() {
51  		return Permissions.class;
52  	}
53  
54  }