All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.jpattern.rest.RestServlet Maven / Gradle / Ivy

package com.googlecode.jpattern.rest;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.googlecode.jpattern.core.util.ValueUtil;
import com.googlecode.jpattern.rest.action.IActionWrapper;
import com.googlecode.jpattern.rest.action.IDeleteAction;
import com.googlecode.jpattern.rest.action.IGetAction;

/**
 * 
 * @author Francesco Cina'
 *
 * 11/mag/2011
 */
public abstract class RestServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private IRestServletResourceMap configuration; 
	
	protected abstract IRestServletResourceMap configure();
	
	@Override
	public final void doGet(HttpServletRequest request, HttpServletResponse response) {
		IActionWrapper actionWrapper = getConfiguration().getAction( ValueUtil.stringNotNull(request.getPathInfo(),""));
		IRestManager restManager = new GetDeleteRestManager(getConfiguration().provider(), new GetExecutor(actionWrapper.action()), actionWrapper.relativePath(), request, response);
		restManager.execute();
	}

	@Override
	public final void doDelete(HttpServletRequest request, HttpServletResponse response) {
		IActionWrapper actionWrapper = getConfiguration().deleteAction( ValueUtil.stringNotNull(request.getPathInfo(),""));
		IRestManager restManager = new GetDeleteRestManager(getConfiguration().provider(), new DeleteExecutor(actionWrapper.action()), actionWrapper.relativePath(), request, response);
		restManager.execute();
	}
	
	@Override
	public final void doPost(HttpServletRequest request, HttpServletResponse response) {
		
	}
	
	@Override
	public final void doPut(HttpServletRequest request, HttpServletResponse response) {
		
	}
	
	protected IRestServletResourceMap getConfiguration() {
		if (configuration == null) {
			configuration = configure();
		}
		return configuration;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy