Mercurial > hg > AnnotationManagerN4J
annotate src/main/java/de/mpiwg/itgroup/annotations/Actor.java @ 64:c48435e7f312
fix npe when an annotation has no creator.
| author | casties |
|---|---|
| date | Mon, 03 Dec 2012 18:42:20 +0100 |
| parents | f5c0e6df7e88 |
| 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 } |
