view src/de/mpiwg/itgroup/metaDataManagerRestlet/pid/PIDcreator.java @ 0:813aa2c5bc4b

first ingest
author dwinter
date Wed, 24 Nov 2010 16:56:28 +0100
parents
children
line wrap: on
line source

package de.mpiwg.itgroup.metaDataManagerRestlet.pid;

import java.io.InputStream;

import org.apache.log4j.Logger;
import org.restlet.data.Form;
import org.restlet.data.MediaType;
import org.restlet.representation.InputRepresentation;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
import org.restlet.resource.Get;
import org.restlet.resource.Options;
import org.restlet.resource.Post;
import org.restlet.resource.ServerResource;

import de.mpiwg.itgroup.metadataManager.pid.PidGenerator;



public class PIDcreator extends ServerResource {

private Logger logger = Logger.getRootLogger();
	
	/**
	 * Erlaubt cross scripting bei Aufruf aus Javascript
	 * @param entity
	 */
	@Options
	public void doOptions(Representation entity) {
	    Form responseHeaders = (Form) getResponse().getAttributes().get("org.restlet.http.headers");
	    if (responseHeaders == null) {
	        responseHeaders = new Form();
	        getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
	    }
	    responseHeaders.add("Access-Control-Allow-Origin", "*");
	    responseHeaders.add("Access-Control-Allow-Methods", "POST,OPTIONS,GET");
	    responseHeaders.add("Access-Control-Allow-Headers", "Content-Type");
	    responseHeaders.add("Access-Control-Allow-Credentials", "false");
	    responseHeaders.add("Access-Control-Max-Age", "60");
	}

	@Post
	public Representation createPid(){
		PidGenerator pg = new PidGenerator();
		String pid = pg.getPID();
		Representation rep = new StringRepresentation(pid, MediaType.TEXT_PLAIN);
		return rep;
	}
	
	@Get("html")
	public Representation getHTML(){
		InputStream is = getClass().getResourceAsStream("/de/mpiwg/itgroup/metaDataManagerRestlet/staticPages/PID.html");
		
		Representation rep = new InputRepresentation(is,MediaType.TEXT_HTML);
		return rep;
		
	}
	
}