comparison src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java @ 9:b2bfc3bc9ba8

new internal actor class for creator.
author casties
date Thu, 12 Jul 2012 12:54:46 +0200
parents bbf0cc5bee29
children 90911b2da322
comparison
equal deleted inserted replaced
8:c3cc6a41dd1c 9:b2bfc3bc9ba8
2 * Base class for Annotator resource classes. 2 * Base class for Annotator resource classes.
3 */ 3 */
4 package de.mpiwg.itgroup.annotations.restlet; 4 package de.mpiwg.itgroup.annotations.restlet;
5 5
6 import java.io.UnsupportedEncodingException; 6 import java.io.UnsupportedEncodingException;
7 import java.net.URLDecoder;
8 import java.net.URLEncoder;
9 import java.security.InvalidKeyException; 7 import java.security.InvalidKeyException;
10 import java.security.SignatureException; 8 import java.security.SignatureException;
11 import java.text.SimpleDateFormat; 9 import java.text.SimpleDateFormat;
12 import java.util.ArrayList; 10 import java.util.ArrayList;
13 import java.util.Calendar; 11 import java.util.Calendar;
33 import org.restlet.data.Status; 31 import org.restlet.data.Status;
34 import org.restlet.representation.Representation; 32 import org.restlet.representation.Representation;
35 import org.restlet.resource.Options; 33 import org.restlet.resource.Options;
36 import org.restlet.resource.ServerResource; 34 import org.restlet.resource.ServerResource;
37 35
36 import de.mpiwg.itgroup.annotations.Actor;
38 import de.mpiwg.itgroup.annotations.Annotation; 37 import de.mpiwg.itgroup.annotations.Annotation;
39 import de.mpiwg.itgroup.annotations.Annotation.FragmentTypes; 38 import de.mpiwg.itgroup.annotations.Annotation.FragmentTypes;
40 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; 39 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore;
41 import de.mpiwg.itgroup.annotations.old.NS; 40 import de.mpiwg.itgroup.annotations.old.NS;
42 41
191 JSONObject userObject = new JSONObject(); 190 JSONObject userObject = new JSONObject();
192 // save creator as uri 191 // save creator as uri
193 userObject.put("uri", annot.getCreatorUri()); 192 userObject.put("uri", annot.getCreatorUri());
194 // make short user id 193 // make short user id
195 String userId = annot.getCreatorUri(); 194 String userId = annot.getCreatorUri();
195 // remove namespace from user uri to get id
196 if (userId != null && userId.startsWith(NS.MPIWG_PERSONS_URL)) { 196 if (userId != null && userId.startsWith(NS.MPIWG_PERSONS_URL)) {
197 userId = userId.replace(NS.MPIWG_PERSONS_URL, ""); // entferne 197 userId = userId.replace(NS.MPIWG_PERSONS_URL, "");
198 // NAMESPACE 198 }
199 } 199 // set as id
200 // save as id
201 userObject.put("id", userId); 200 userObject.put("id", userId);
202 // get full name 201 // get full name
203 String userName = annot.getCreatorName(); 202 String userName = annot.getCreatorName();
204 if (userName == null) { 203 if (userName == null) {
205 RestServer restServer = (RestServer) getApplication(); 204 RestServer restServer = (RestServer) getApplication();
387 setStatus(Status.CLIENT_ERROR_FORBIDDEN); 386 setStatus(Status.CLIENT_ERROR_FORBIDDEN);
388 return null; 387 return null;
389 /* 388 /*
390 * } authUser = httpUser.getIdentifier(); 389 * } authUser = httpUser.getIdentifier();
391 */ 390 */
391 }
392 // get or create creator object
393 Actor creator = annot.getCreator();
394 if (creator == null) {
395 creator = new Actor(false, null, null);
396 annot.setCreator(creator);
392 } 397 }
393 // username not required, if no username given authuser will be used 398 // username not required, if no username given authuser will be used
394 String username = null; 399 String username = null;
395 String userUri = annot.getCreatorUri(); 400 String userUri = annot.getCreatorUri();
396 if (jo.has("user")) { 401 if (jo.has("user")) {
411 } 416 }
412 if (username == null) { 417 if (username == null) {
413 username = authUser; 418 username = authUser;
414 } 419 }
415 // try to get full name 420 // try to get full name
416 if (username != null) { 421 if (creator.getName() == null && username != null) {
417 RestServer restServer = (RestServer) getApplication(); 422 RestServer restServer = (RestServer) getApplication();
418 String fullName = restServer.getFullNameFromLdap(username); 423 String fullName = restServer.getFullNameFromLdap(username);
419 annot.setCreatorName(fullName); 424 creator.setName(fullName);
420 } 425 }
421 // userUri should be a URI, if not it will set to the MPIWG namespace 426 // userUri should be a URI, if not it will set to the MPIWG namespace
422 if (userUri == null) { 427 if (userUri == null) {
423 if (username.startsWith("http")) { 428 if (username.startsWith("http")) {
424 userUri = username; 429 userUri = username;
425 } else { 430 } else {
426 userUri = NS.MPIWG_PERSONS_URL + username; 431 userUri = NS.MPIWG_PERSONS_URL + username;
427 } 432 }
428 } 433 }
429 // TODO: should we overwrite the creator? 434 // TODO: should we overwrite the creator?
430 if (annot.getCreatorUri() == null) { 435 if (creator.getUri() == null) {
431 annot.setCreatorUri(userUri); 436 creator.setUri(userUri);
432 } 437 }
433 438
434 if (annot.getCreated() == null) { 439 if (annot.getCreated() == null) {
435 // set creation date 440 // set creation date
436 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 441 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");