view src/main/java/de/mpiwg/monographs/servlet/AbstractMonographServlet.java @ 0:fcb8807fbd84

Fist commit!
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Tue, 10 Mar 2015 15:15:30 +0100
parents
children
line wrap: on
line source

package de.mpiwg.monographs.servlet;

import java.util.logging.Level;
import java.util.logging.Logger;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServlet;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.swordapp.server.SwordServerException;

import edu.harvard.iq.dvn.core.study.EditStudyService;
import edu.harvard.iq.dvn.core.study.FileMetadata;
import edu.harvard.iq.dvn.core.study.Study;
import edu.harvard.iq.dvn.core.study.StudyVersion;

public class AbstractMonographServlet extends HttpServlet {
	
	private static final Logger logger = Logger.getLogger("monographs.AbstractMonographServlet");
	
	private Context ctx = null;
	
	protected JSONObject jsonStudyVersion(String studyGlobalId) throws SwordServerException{
		
		Study study0 = getStudy(studyGlobalId);
		StudyVersion study = study0.getLatestVersion();
		
		return MonographUtils.jsonStudyVersion(study);
	}
	
	protected Study getStudy(String studyGlobalId) throws SwordServerException{
		
		EditStudyService editStudyService;

		try {
			editStudyService = (EditStudyService) getCtx().lookup("java:comp/env/editStudy");
		} catch (NamingException ex) {
			logger.info("problem looking up editStudyService");
			throw new SwordServerException("problem looking up editStudyService");
		}
		
		Study study = editStudyService.getStudyByGlobalId(studyGlobalId);
		return study;
	}

	protected Context getCtx() throws NamingException{
		if(ctx == null)
			ctx = new InitialContext();
		return ctx;
	}
	
	protected void error(JSONObject jsonResponse, Exception e){
		logger.log(Level.SEVERE, e.getMessage());
		try {
			jsonResponse.put("status", "error");
			jsonResponse.put("error", e.getMessage());
		} catch (JSONException e1) {
			e1.printStackTrace();
		}
	}
	
}