1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package eu.ehri.project.models;
21
22 import com.tinkerpop.frames.Adjacency;
23 import eu.ehri.project.definitions.Ontology;
24 import eu.ehri.project.models.annotations.EntityType;
25 import eu.ehri.project.models.annotations.Fetch;
26 import eu.ehri.project.models.annotations.Mandatory;
27 import eu.ehri.project.models.base.Accessor;
28 import eu.ehri.project.models.base.Entity;
29 import eu.ehri.project.models.base.PermissionGrantTarget;
30 import eu.ehri.project.models.base.PermissionScope;
31
32
33
34
35
36 @EntityType(EntityClass.PERMISSION_GRANT)
37 public interface PermissionGrant extends Entity {
38
39 @Mandatory
40 @Fetch(value = Ontology.PERMISSION_GRANT_HAS_SUBJECT, ifBelowLevel = 1, numLevels = 1)
41 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_SUBJECT)
42 Accessor getSubject();
43
44 @Fetch(value = Ontology.PERMISSION_GRANT_HAS_GRANTEE, ifBelowLevel = 1, numLevels = 1)
45 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_GRANTEE)
46 Accessor getGrantee();
47
48 @Mandatory
49 @Fetch(value = Ontology.PERMISSION_GRANT_HAS_TARGET, ifBelowLevel = 1, numLevels = 1)
50 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_TARGET)
51 Iterable<PermissionGrantTarget> getTargets();
52
53 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_TARGET)
54 void addTarget(PermissionGrantTarget target);
55
56 @Mandatory
57 @Fetch(Ontology.PERMISSION_GRANT_HAS_PERMISSION)
58 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_PERMISSION)
59 Permission getPermission();
60
61 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_PERMISSION)
62 void setPermission(Permission permission);
63
64 @Fetch(value = Ontology.PERMISSION_GRANT_HAS_SCOPE, ifBelowLevel = 1, numLevels = 0)
65 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_SCOPE)
66 PermissionScope getScope();
67
68 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_SCOPE)
69 void setScope(PermissionScope scope);
70
71 @Adjacency(label = Ontology.PERMISSION_GRANT_HAS_SCOPE)
72 void removeScope(PermissionScope scope);
73 }