Mercurial > hg > AnnotationManagerN4J
annotate src/main/java/de/mpiwg/itgroup/annotations/Actor.java @ 58:f5c0e6df7e88
made uri prefixes in store configurable.
author | casties |
---|---|
date | Tue, 20 Nov 2012 18:23:52 +0100 |
parents | aafa3884b2c4 |
children | 2b1e6df5e21a |
rev | line source |
---|---|
9 | 1 /** |
2 * | |
3 */ | |
4 package de.mpiwg.itgroup.annotations; | |
5 | |
15 | 6 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; |
58 | 7 import de.mpiwg.itgroup.annotations.restlet.BaseRestlet; |
10 | 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; | |
16 | 34 if (person.equals(this)) return true; |
35 if (person.getIdString().equals(this.getIdString())) return true; | |
15 | 36 if (isGroup() && store != null) { |
37 // check if person in group | |
38 return store.isPersonInGroup(person, (Group) this); | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
39 } |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
40 return false; |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
41 } |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
42 |
9 | 43 /** |
44 * @return the uri | |
45 */ | |
46 public String getUri() { | |
47 return uri; | |
48 } | |
13 | 49 |
50 /** | |
51 * Returns the uri (uses id if empty). | |
52 * | |
53 * @return the uri | |
54 */ | |
55 public String getUriString() { | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
56 if (uri == null) { |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
57 return getUriFromId(id, isGroup()); |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
58 } |
13 | 59 return uri; |
60 } | |
61 | |
9 | 62 /** |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
63 * @param uri |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
64 * the uri to set |
9 | 65 */ |
66 public void setUri(String uri) { | |
67 this.uri = uri; | |
68 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
69 |
9 | 70 /** |
71 * @return the name | |
72 */ | |
73 public String getName() { | |
74 return name; | |
75 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
76 |
9 | 77 /** |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
78 * @param name |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
79 * the name to set |
9 | 80 */ |
81 public void setName(String name) { | |
82 this.name = name; | |
83 } | |
10 | 84 |
85 /** | |
86 * @return the id | |
87 */ | |
88 public String getId() { | |
89 return id; | |
90 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
91 |
10 | 92 /** |
93 * Returns id as a String starting with "group:" for groups. | |
94 * | |
95 * @return | |
96 */ | |
97 public abstract String getIdString(); | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
98 |
10 | 99 /** |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
100 * @param id |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
101 * the id to set |
10 | 102 */ |
103 public void setId(String id) { | |
104 this.id = id; | |
105 } | |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
106 |
10 | 107 /** |
108 * Returns a short id from an uri. | |
109 * | |
110 * @param uri | |
111 * @return | |
112 */ | |
113 public static String getIdFromUri(String uri, boolean isGroup) { | |
114 String id = null; | |
58 | 115 String prefix = BaseRestlet.PERSONS_URI_PREFIX; |
10 | 116 if (isGroup) { |
58 | 117 prefix = BaseRestlet.GROUPS_URI_PREFIX; |
10 | 118 } |
119 if (uri != null && uri.startsWith(prefix)) { | |
120 id = uri.replace(prefix, ""); | |
121 } | |
122 return id; | |
123 } | |
124 | |
125 /** | |
126 * Returns an uri from a short id. | |
127 * | |
128 * @param id | |
129 * @return | |
130 */ | |
131 public static String getUriFromId(String id, boolean isGroup) { | |
132 String uri = null; | |
58 | 133 String prefix = BaseRestlet.PERSONS_URI_PREFIX; |
10 | 134 if (isGroup) { |
58 | 135 prefix = BaseRestlet.GROUPS_URI_PREFIX; |
10 | 136 } |
14
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
137 if (id != null && !id.startsWith("http://")) { |
629e15b345aa
permissions mostly work. need more server-side checking.
casties
parents:
13
diff
changeset
|
138 uri = prefix + id; |
10 | 139 } |
140 return uri; | |
141 } | |
142 | |
9 | 143 } |