package ajax;

import java.io.IOException;
import java.util.List;

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

import ajax.database.UserBean;

/**
 * Contact list servlet
 *
 * @author Adam J. Kaplan
 */
public class Contacts extends HttpServlet 
{
	private static final long serialVersionUID = 1L;

	// SERVLET CODE //
	/**
	* Get method handler for servlet functionality.
	* 
	* @param request The HTTP request to the servlet
	* @param response The HTTP response to the client
	*/
	public void doGet(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException
	{
		// Initialize or get the session
		//HttpSession session = request.getSession(true);

		// Add the site configurtion file
		dispatchRequest(request, response);
	}

	/**
	* Post method handler for servlet functionality.
	* 
	* @param request The HTTP request to the servlet
	* @param response The HTTP response to the client
	* @see #doGet
	*/
	public void doPost(HttpServletRequest request, 
											HttpServletResponse response)
		throws ServletException, IOException
	{
		doGet(request,response);
	}

	/**
	 * A simple string validator which checks for null or empty strings.
	 *
	 * @param s the string to validate
	 * @return true if the string is not null or empty
	 */
	public boolean validate (String s) { return (s != null && s.length() > 0); }

	// Dispatch request to the appripriate bean or whatever
	private void dispatchRequest(
		HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException
	{
		try { 
			List all_users = UserBean.getUserList();
			request.setAttribute("userlist", all_users);
			forward("contactlist_JSON.jsp", request, response);
		}
		catch (Exception e)
		{
			request.setAttribute("message", e.getMessage());
			forward("error.jsp", request, response);
			return;
		}
	}

	/**
	 * Preforms request dispatching for an HttpServletRequest servlet request.
	 *
	 * @param url the destination url or jsp
	 * @param request the servlet request
	 * @param response the servlet response 
	 * @see HttpServletRequest
	 * @see HttpServletResponse
	 */
	public static void forward 
		(String url, HttpServletRequest request, HttpServletResponse response)
		throws java.io.IOException, ServletException
	{
		RequestDispatcher rd = request.getRequestDispatcher(url);
		rd.forward(request, response);
	}
}

