/**
* <copyright>
*
* Copyright (c) 2011 Springsite BV (The Netherlands) and others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Martin Taal - Initial API and implementation
*
* </copyright>
*
* $Id: WebServiceServlet.java,v 1.2 2011/09/04 20:04:19 mtaal Exp $
*/
package org.eclipse.emf.texo.server.web;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.emf.texo.server.service.ServiceConstants;
/**
* The base implementation of a CRUD Rest WS Servlet. It is the basis of the XML and JSON CRUD REST servlets.
*
* @author <a href="mtaal@elver.org">Martin Taal</a>
*/
public abstract class WebServiceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private WebServiceHandler webServiceHandler;
protected abstract WebServiceHandler createWebServiceHandler();
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
if (webServiceHandler == null) {
webServiceHandler = createWebServiceHandler();
}
}
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
webServiceHandler.doDelete(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
webServiceHandler.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (req.getParameter(ServiceConstants.PARAM_RETRIEVAL) != null) {
webServiceHandler.doGet(req, resp);
}
webServiceHandler.doPost(req, resp);
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (req.getParameter(ServiceConstants.PARAM_RETRIEVAL) != null) {
webServiceHandler.doGet(req, resp);
}
webServiceHandler.doPut(req, resp);
}
public WebServiceHandler getWebServiceHandler() {
if (webServiceHandler == null) {
webServiceHandler = createWebServiceHandler();
}
return webServiceHandler;
}
public void setWebServiceHandler(WebServiceHandler webServiceHandler) {
this.webServiceHandler = webServiceHandler;
}
}