view src/main/java/de/mpiwg/indexmeta/web/servlet/AbstractServlet.java @ 8:9ce7979fd037

Implementation Data Provider
author Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
date Wed, 24 Apr 2013 10:34:23 +0200
parents bc57f2660b0f
children
line wrap: on
line source

package de.mpiwg.indexmeta.web.servlet;

import javax.faces.FactoryFinder;
import javax.faces.context.FacesContext;
import javax.faces.context.FacesContextFactory;
import javax.faces.lifecycle.Lifecycle;
import javax.faces.lifecycle.LifecycleFactory;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import de.mpiwg.indexmeta.services.DataProvider;
import de.mpiwg.indexmeta.web.beans.AbstractBean;
import de.mpiwg.indexmeta.web.beans.ApplicationBean;


public class AbstractServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	public static String METHOD = "mt";
	public static String getCtxFromDB = "getCtxFromDB";
	public static String getCtxFromIndexMeta = "getCtxFromIndexMeta";
	public static String getSaveCtx = "getSaveCtx";
	
	public ApplicationBean getAppBean(HttpServletRequest request, HttpServletResponse response) {
		ApplicationBean appBean = (ApplicationBean)getApplicationBean(request, response, AbstractBean.BEAN_APP);
				
		if(appBean == null){
			appBean = new ApplicationBean();
			getFacesContext(request, response).getCurrentInstance().getExternalContext().getApplicationMap().put(AbstractBean.BEAN_APP, appBean);			
		}
		return appBean; 
	}
	
	public DataProvider getDp(HttpServletRequest request, HttpServletResponse response) {
		return getAppBean(request, response).getDp();
	}
	
	public Object getApplicationBean(HttpServletRequest request, HttpServletResponse response, String bean) {
		return getFacesContext(request, response).getExternalContext().getApplicationMap().get(bean);
	}

	
	public FacesContext getFacesContext(HttpServletRequest request, HttpServletResponse response) { 
		ServletContext servletContext = ((HttpServletRequest)request).getSession().getServletContext(); 
		FacesContextFactory contextFactory = (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY); 
		LifecycleFactory lifecycleFactory = (LifecycleFactory)FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY); 
		Lifecycle lifecycle = lifecycleFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE); 
		return contextFactory.getFacesContext(servletContext, request, response, lifecycle);
	}
}