Mercurial > hg > AnnotationManagerN4J
annotate src/main/java/de/mpiwg/itgroup/annotations/Actor.java @ 15:58357a4b86de
ASSIGNED - # 249: Annotations shared in groups
https://it-dev.mpiwg-berlin.mpg.de/tracs/mpdl-project-software/ticket/249
author | casties |
---|---|
date | Tue, 28 Aug 2012 20:23:12 +0200 |
parents | 629e15b345aa |
children | 794077e6288c |
rev | line source |
---|---|
9 | 1 /** |
2 * | |
3 */ | |
4 package de.mpiwg.itgroup.annotations; | |
5 | |
15 | 6 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; |
10 | 7 import de.mpiwg.itgroup.annotations.old.NS; |
8 | |
9 | 9 /** |
10 * @author casties | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
11 * |
9 | 12 */ |
10 | 13 public abstract class Actor { |
9 | 14 |
15 public String uri; | |
16 public String name; | |
10 | 17 public String id; |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
18 |
9 | 19 /** |
10 | 20 * @return if this Actor is a Group |
9 | 21 */ |
10 | 22 public abstract boolean isGroup(); |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
23 |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
24 /** |
15 | 25 * Returns if this Actor is equivalent to Person person. If this is |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
26 * a Group returns true when the Person is in the Group. |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
27 * |
15 | 28 * @param person |
29 * @param store AnnotationStore to check group membership | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
30 * @return |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
31 */ |
15 | 32 public boolean isEquivalentWith(Person person, AnnotationStore store) { |
33 if (person == null) return false; | |
34 if (person.equals(getIdString())) { | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
35 return true; |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
36 } |
15 | 37 if (isGroup() && store != null) { |
38 // check if person in group | |
39 return store.isPersonInGroup(person, (Group) this); | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
40 } |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
41 return false; |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
42 } |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
43 |
9 | 44 /** |
45 * @return the uri | |
46 */ | |
47 public String getUri() { | |
48 return uri; | |
49 } | |
13 | 50 |
51 /** | |
52 * Returns the uri (uses id if empty). | |
53 * | |
54 * @return the uri | |
55 */ | |
56 public String getUriString() { | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
57 if (uri == null) { |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
58 return getUriFromId(id, isGroup()); |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
59 } |
13 | 60 return uri; |
61 } | |
62 | |
9 | 63 /** |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
64 * @param uri |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
65 * the uri to set |
9 | 66 */ |
67 public void setUri(String uri) { | |
68 this.uri = uri; | |
69 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
70 |
9 | 71 /** |
72 * @return the name | |
73 */ | |
74 public String getName() { | |
75 return name; | |
76 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
77 |
9 | 78 /** |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
79 * @param name |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
80 * the name to set |
9 | 81 */ |
82 public void setName(String name) { | |
83 this.name = name; | |
84 } | |
10 | 85 |
86 /** | |
87 * @return the id | |
88 */ | |
89 public String getId() { | |
90 return id; | |
91 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
92 |
10 | 93 /** |
94 * Returns id as a String starting with "group:" for groups. | |
95 * | |
96 * @return | |
97 */ | |
98 public abstract String getIdString(); | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
99 |
10 | 100 /** |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
101 * @param id |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
102 * the id to set |
10 | 103 */ |
104 public void setId(String id) { | |
105 this.id = id; | |
106 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
107 |
10 | 108 /** |
109 * Returns a short id from an uri. | |
110 * | |
111 * @param uri | |
112 * @return | |
113 */ | |
114 public static String getIdFromUri(String uri, boolean isGroup) { | |
115 String id = null; | |
116 String prefix = NS.MPIWG_PERSONS_URL; | |
117 if (isGroup) { | |
118 prefix = NS.MPIWG_GROUPS_URL; | |
119 } | |
120 if (uri != null && uri.startsWith(prefix)) { | |
121 id = uri.replace(prefix, ""); | |
122 } | |
123 return id; | |
124 } | |
125 | |
126 /** | |
127 * Returns an uri from a short id. | |
128 * | |
129 * @param id | |
130 * @return | |
131 */ | |
132 public static String getUriFromId(String id, boolean isGroup) { | |
133 String uri = null; | |
134 String prefix = NS.MPIWG_PERSONS_URL; | |
135 if (isGroup) { | |
136 prefix = NS.MPIWG_GROUPS_URL; | |
137 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
138 if (id != null && !id.startsWith("http://")) { |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
139 uri = prefix + id; |
10 | 140 } |
141 return uri; | |
142 } | |
143 | |
9 | 144 } |