StateToVendorPaymentCTL.java

This class is a controller servlet using the MVC pattern of web applicaiton design. The controller server extends the ServletCTL class and handles all requests coming from application JSPs. It is a little large but pretty straight forward and could easily be broken into two classes. This was before I started using Struts and other MVC frameworks.
package cpa.app.vip;

import java.net.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;


/*************************************************************************
 * This class handles State to Vendor Payment requests from web pages by
 * extending the abstract ServletCTL class which parses extra path
 * information in a URL and uses that information to call a method.
 *
 * @author Paul McKinney
 *************************************************************************/
public class StateToVendorPaymentCTL extends ServletCTL
{


//*************************************************************
//************ State Agency Maintenance ***********************
//*************************************************************

   /************************************************************************
    * Processes the request from the State Agency Maintenance web page
    * using the value of the "submit" parameter.  Determines if the
    * request is from the Comptroller domain and if so continues to
    * process the request.  If the session does not already exist the
    * original State Agency Maintenance web page is displayed.  Otherwise
    * a method relating to the "submit" paramater value is called.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handleStateAgencyMaint(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      String[] messages = null;
      if (isFromComptroller(request))
      {
         HttpSession session = request.getSession(false);
         if (session == null)
         {
            messages = new String[] {"Session timeout."};
            request.setAttribute("cpa.app.vip.messages", messages);
            forward(request, response, "/StateAgencyMaint.jsp");
         }
         else
         {
            String submit;
            submit = request.getParameter("submit");
            if (submit.equals("Query"))
            {
               queryStateAgency(request, response);
            }
            else 
            {
               if (submit.equals("Save"))
                  saveStateAgency(request, response);
               else 
                  if (submit.equals("Delete"))
                     confirmDeleteStateAgency(request, response);
            }
         }
      }
   }


   /************************************************************************
    * Processes the request from the State Agency Confirm delete web page
    * depending on the "submit" parameter value. 
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handleStateAgencyConfirmDelete(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      String submit = null;
      if (isFromComptroller(request))
      {
         HttpSession session = request.getSession(false);
         if (session == null)
            forward(request, response, "/StateAgencyMaint.jsp");

         submit = request.getParameter("submit");
         if (submit.equals("Delete"))
            deleteStateAgency(request, response);
         else
            if (submit.equals("Cancel"))
               forward(request, response, "/StateAgencyMaint.jsp");
      }
   }


   /*******************************************************************
    * Restores State Agency and then forwards request to State Agency
    * Maintenance web page.
    *******************************************************************/
   private void queryStateAgency(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      StateAgency stateAgency = null;
      String status = "";
      String id = "";
      String[] messages = null;

      setStateAgency(request);
      HttpSession session = request.getSession(false);
      stateAgency = (StateAgency) session.getValue("stateAgency");
      if (stateAgency.restore())
         ; //do nothing
      else
      {
         messages = new String[] {"Not found."};
         id = stateAgency.getId();
         clearStateAgency(stateAgency);
         stateAgency.setId(id);
      }

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/StateAgencyMaint.jsp");
   }


   /************************************************************************
    * Validates State Agency information and if ok then tries to save.  If
    * successfull the request is forwarded to the State Agency Maintenance
    * web page.
    ************************************************************************/
   private void saveStateAgency(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      StateAgency stateAgency = null;
      String status = "";
      String[] messages = null;

      setStateAgency(request);
      HttpSession session = request.getSession(false);
      stateAgency = (StateAgency) session.getValue("stateAgency");

      if (stateAgency.isValid())
      {
         if (stateAgency.save())
            messages = new String[] {"Saved."};
         else
            messages = new String[] {"Save failed."};
      }
      else
         messages = stateAgency.getValidateMsgs();

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/StateAgencyMaint.jsp");
   }


   /*********************************************************************
    * Restores the State Agency object and then forwards the request to
    * the State Agency Confirm Delete web page.
    *********************************************************************/
   private void confirmDeleteStateAgency(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      StateAgency stateAgency = null;

      setStateAgency(request);
      HttpSession session = request.getSession(false);
      stateAgency = (StateAgency) session.getValue("stateAgency");
      stateAgency.restore();

      forward(request, response, "/StateAgencyConfirmDelete.jsp");
   }


   /****************************************************************************
    * Sets the State Agency ID and then tries to remove the State Agency.  The
    * request is then forwarded to the State Agency Maintenance web page.
    ****************************************************************************/
   private void deleteStateAgency(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      StateAgency stateAgency = null;
      String id = "";
      String[] messages = null;

      HttpSession session = request.getSession(false);
      id = request.getParameter("id");
      stateAgency = (StateAgency) session.getValue("stateAgency");
      stateAgency.setId(id);

      if (stateAgency.remove())
      {
         messages = new String[] {"Deleted."};
         id = stateAgency.getId();
         clearStateAgency(stateAgency);
         stateAgency.setId(id);
      }
      else
         messages = new String[] {"Delete failed."};

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/StateAgencyMaint.jsp");
   }
   

   /************************************************************************
    * Sets the properties in the StateAgency business object from the http
    * request.
    ************************************************************************/
   private void setStateAgency(HttpServletRequest request)
   {
      StateAgency stateAgency = null;

      String id = null;
      String name = null;
      String typeCode = null;
      String contactFirstName = null;
      String contactLastName = null;
      String contactTitle = null;
      String contactTelephoneNum = null;
      String contactTelephoneExtention = null;
      String contactTelephoneTollFree = null;
      String contactFaxNum = null;
      String contactEmailAddress = null;

      HttpSession session = request.getSession(false);
      stateAgency = (StateAgency) session.getValue("stateAgency");

      id                         = request.getParameter("id");
      name                       = request.getParameter("name");
      typeCode                   = request.getParameter("typeCode");
      contactFirstName           = request.getParameter("contactFirstName");
      contactLastName            = request.getParameter("contactLastName");
      contactTitle               = request.getParameter("contactTitle");
      contactTelephoneNum        = request.getParameter("contactTelephoneNum");
      contactTelephoneExtention  = request.getParameter("contactTelephoneExtention");
      contactTelephoneTollFree   = request.getParameter("contactTelephoneTollFree");
      contactFaxNum              = request.getParameter("contactFaxNum");
      contactEmailAddress        = request.getParameter("contactEmailAddress");

      stateAgency.setId(id);
      stateAgency.setName(name);
      stateAgency.setTypeCode(typeCode);
      stateAgency.setContactFirstName(contactFirstName);
      stateAgency.setContactLastName(contactLastName);
      stateAgency.setContactTitle(contactTitle);
      stateAgency.setContactTelephoneNum(contactTelephoneNum);
      stateAgency.setContactTelephoneExtention(contactTelephoneExtention);
      stateAgency.setContactTelephoneTollFree(contactTelephoneTollFree);
      stateAgency.setContactFaxNum(contactFaxNum);
      stateAgency.setContactEmailAddress(contactEmailAddress);
   }


   /*************************************************
    * Clears the values in the State Agency object.
    *************************************************/
   private void clearStateAgency(StateAgency stateAgency)
   {
      stateAgency.setId("");
      stateAgency.setName("");
      stateAgency.setTypeCode("");
      stateAgency.setContactFirstName("");
      stateAgency.setContactLastName("");
      stateAgency.setContactTitle("");
      stateAgency.setContactTelephoneNum("");
      stateAgency.setContactTelephoneExtention("");
      stateAgency.setContactTelephoneTollFree("");
      stateAgency.setContactFaxNum("");
      stateAgency.setContactEmailAddress("");
   }


//*************************************************************
//************ Payee Maintenance - ****************************
//*************************************************************

   /************************************************************************
    * Processes the request from the Payee Maintenance web page
    * using the value of the "submit" parameter.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handlePayeeMaint(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      if (isFromComptroller(request))
      {
         HttpSession session = request.getSession(false);
         if (session == null)
            forward(request, response, "/PayeeMaint.jsp");
         else
         {
            String submit;

            submit = request.getParameter("submit");
            if (submit.equals("Query"))
               queryPayee(request, response);
            else 
            {
               if (submit.equals("Save"))
                  savePayee(request, response);
               else 
               {
                  if (submit.equals("Delete"))
                     confirmDeletePayee(request, response);
                  else
                     if (submit.equals("Mail Codes"))
                        showPayeeMailCodes(request, response);
               }
            }
         }
      }
   }


   /************************************************************************
    * Processes the request from the Payee Confirm Delete web page
    * using the value of the "submit" parameter.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handlePayeeConfirmDelete(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      String submit = null;

      if (isFromComptroller(request))
      {
         HttpSession session = request.getSession(false);
         if (session == null)
            forward(request, response, "/PayeeMaint.jsp");

         submit = request.getParameter("submit");
         if (submit.equals("Delete"))
            deletePayee(request, response);
         else
            if (submit.equals("Cancel"))
               forward(request, response, "/PayeeMaint.jsp");
      }
   }


   /*****************************************************************
    * Restores the Payee and then forwards the request to the Payee
    * Maintenance web page.
    *****************************************************************/
   private void queryPayee(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      Payee payee = null;
      String status = "";
      String id = "";
      String[] messages = null;

      setPayee(request);
      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");

      if (payee.restore())
         ;  //do nothing
      else
      {
         messages = new String[] {"Payee: \"" + payee.getId() + "\" not found."};
         id = payee.getId();
         clearPayee(payee);
         payee.setId(id);
      }

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/PayeeMaint.jsp");
   }


   /************************************************************************
    * Validates Payee attributes, tries to save, and then forwards request
    * to the Payee Maintenance web page.
    ************************************************************************/
   private void savePayee(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      Payee payee = null;
      String[] messages = null;

      setPayee(request);
      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");

      if (payee.isValid())
      {
         if (payee.save())
            messages = new String[] {"Saved."};
         else
            messages = new String[] {"Save failed."};
      }
      else
         messages = payee.getValidateMsgs();

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/PayeeMaint.jsp");
   }


   /************************************************************************
    * Checks if valid to delete Payee and if valid forwards request to the
    * Payee Confirm Delete web page.
    ************************************************************************/
   private void confirmDeletePayee(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      Payee payee = null;
      boolean canDelete = false;
      String[] messages = null;
      HttpSession session = request.getSession(false);

      setPayee(request);
      payee = (Payee) session.getValue("payee");

      if (payee.isValidToDelete())
         canDelete = true;
      else
         messages = payee.getValidateDeleteMsgs();

      request.setAttribute("cpa.app.vip.messages", messages);
      if (canDelete)
         forward(request, response, "/PayeeConfirmDelete.jsp");
      else
         forward(request, response, "/PayeeMaint.jsp");
   }


   /************************************************************
    * Tries to remove Payee and then forwards request to Payee
    * Maintenance web page.
    ************************************************************/
   private void deletePayee(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      Payee payee = null;
      String id = "";
      String[] messages = null;

      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");

      if (payee.remove())
      {
         messages = new String[] {"Deleted."};
         id = payee.getId();
         clearPayee(payee);
         payee.setId(id);
      }
      else
         messages = new String[] {"Delete failed."};

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/PayeeMaint.jsp");
   }


   /*************************************************************************
    * Restores Payee object, restores the Payee Mail Code objects, and then
    * forwards the request to the Payee Mail Codes web page.
    *************************************************************************/
   private void showPayeeMailCodes(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      Payee payee =null;
      PayeeMailCode[] mailCodes;
      String message = null;
      String[] messages = null;

      Utility util = new Utility();
      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");
      setPayee(request);
      payee.restore();
      payee.setMailCodes();
      mailCodes = payee.getMailCodes();

      if (mailCodes.length == 0)
      {
         messages = (String[]) request.getAttribute("cpa.app.vip.messages");
         message = "No mail codes defined for payee: " + payee.getId();
         messages = util.addStringToArray(messages, message);
      }

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/PayeeMailCodes.jsp");
   }


   /************************************************************************
    * Sets the properties of the Payee business object from parameters in
    * in the request.
    ************************************************************************/
   private void setPayee(HttpServletRequest request)
   {
      Payee payee = null;

      String id = null;
      String name = null;
      String contactFirstName = null;
      String contactLastName = null;
      String contactTitle = null;
      String contactTelephoneNum = null;
      String contactTelephoneExtention = null;

      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");

      id                         = request.getParameter("id");
      name                       = request.getParameter("name");
      contactFirstName           = request.getParameter("contactFirstName");
      contactLastName            = request.getParameter("contactLastName");
      contactTitle               = request.getParameter("contactTitle");
      contactTelephoneNum        = request.getParameter("contactTelephoneNum");
      contactTelephoneExtention  = request.getParameter("contactTelephoneExtention");

      payee.setId(id);
      payee.setName(name);
      payee.setContactFirstName(contactFirstName);
      payee.setContactLastName(contactLastName);
      payee.setContactTitle(contactTitle);
      payee.setContactTelephoneNum(contactTelephoneNum);
      payee.setContactTelephoneExtention(contactTelephoneExtention);
   }


   private void clearPayee(Payee payee)
   {
      payee.setId("");
      payee.setName("");
      payee.setContactFirstName("");
      payee.setContactLastName("");
      payee.setContactTitle("");
      payee.setContactTelephoneNum("");
      payee.setContactTelephoneExtention("");
   }


//*************************************************************
//************ Payee Mail Codes Maintenance *******************
//*************************************************************

   /************************************************************************
    * Processes the request from the Payee Mail Codes web page
    * using the value of the "submit" parameter.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handlePayeeMailCodes(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      if (isFromComptroller(request))
      {
         String submit = null;

         HttpSession session = request.getSession(false);
         if (session == null)
            forward(request, response, "/PayeeMaint.jsp");
         else
         {
            submit = request.getParameter("submit");
            if (submit.equals("Add Mail Code"))
               addPayeeMailCode(request, response);
            else
               if (submit.equals("Edit"))
                  editPayeeMailCode(request, response);
                  else
                     if (submit.equals("Delete"))
                        confirmDeletePayeeMailCode(request, response);
                     else
                        if (submit.equals("Cancel"))
                           forward(request, response, "/PayeeMaint.jsp");
         }
      }
   }


   /********************************************************************************
    * Sets payee PIN in Mail Code, indicates in a request parameter that this will
    * be a new mail code, and then forwards the request to the Payee Mail Code
    * Maintenance web page.
    ********************************************************************************/
   private void addPayeeMailCode(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      Payee payee = null;
      PayeeMailCode payeeMailCode = null;

      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");
      payeeMailCode = (PayeeMailCode) session.getValue("payeeMailCode");
      clearPayeeMailCode(payeeMailCode);
      payeeMailCode.setPayeePin(payee.getId());

      session.putValue("cpa.app.vip.isNewMailCode", "true");
      forward(request, response, "/PayeeMailCodeMaint.jsp");
   }


   /*********************************************************************
    * Indicates that this is not a new mail code, gets mail code
    * payee Pin and code from the request parameters, restores the mail
    * code in session, and then forwards the request to the Payee
    * Mail Code Maintenance web page.
    *********************************************************************/
   private void editPayeeMailCode(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      PayeeMailCode payeeMailCode = null;
      String payeePin = null;
      String code = null;
      HttpSession session = request.getSession(false);
      session.putValue("cpa.app.vip.isNewMailCode", "false");
      payeeMailCode = (PayeeMailCode) session.getValue("payeeMailCode");

      payeePin = request.getParameter("payeePin");
      code = request.getParameter("code");
      clearPayeeMailCode(payeeMailCode);

      payeeMailCode.setPayeePin(payeePin);
      payeeMailCode.setCode(code);

      payeeMailCode.restore();
      forward(request, response, "/PayeeMailCodeMaint.jsp");
   }

   
   /****************************************************************************
    * Gets mail code payee PIN and code, sets the mail code with the payee PIN
    * and code from session then forwards the request to the Payee Mail Code
    * Confirm Delete web page.
    ****************************************************************************/
   private void confirmDeletePayeeMailCode(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      PayeeMailCode payeeMailCode = null;
      String payeePin = null;
      String code = null;

      HttpSession session = request.getSession(false);
      payeeMailCode = (PayeeMailCode) session.getValue("payeeMailCode");

      payeePin = request.getParameter("payeePin");
      code = request.getParameter("code");
      payeeMailCode.setPayeePin(payeePin);
      payeeMailCode.setCode(code);

      forward(request, response, "/PayeeMailCodeConfirmDelete.jsp");
   }


//*************************************************************
//************ Payee Mail Code Maintenance ********************
//*************************************************************

   /************************************************************************
    * Processes the request from the Payee Mail Code Maintenance web page
    * using the value of the "submit" parameter.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handlePayeeMailCodeMaint(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      if (isFromComptroller(request))
      {
         HttpSession session = request.getSession(false);
         if (session == null)
            forward(request, response, "/PayeeMaint.jsp");
         else
         {

         String submit;
         submit = request.getParameter("submit");

         if (submit.equals("Save"))
            savePayeeMailCode(request, response, "/PayeeMailCodes.jsp");
         else
            if (submit.equals("Save and Add Another"))
               savePayeeMailCode(request, response, "/PayeeMailCodeMaint.jsp");
            else
               if (submit.equals("Cancel"))
                  forward(request, response, "/PayeeMailCodes.jsp");
         }
      }
   }


   /************************************************************************
    * Processes the request from the Payee Mail Code Confirm Delete web page
    * using the value of the "submit" parameter.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handlePayeeMailCodeConfirmDelete(HttpServletRequest request, 
                        HttpServletResponse response)
   {
      String submit = null;

      if (isFromComptroller(request))
      {
         HttpSession session = request.getSession(false);
         if (session == null)
            forward(request, response, "/PayeeMaint.jsp");
         else
         {
            submit = request.getParameter("submit");
            if (submit.equals("Delete"))
               deletePayeeMailCode(request, response);
            else
               if (submit.equals("Cancel"))
                  forward(request, response, "/PayeeMailCodes.jsp");
         }
      }
   }


   /*******************************************************************************
    * Validates PayeeMailCode attributes and if valid tries to save.  The request
    * will be forward back to the Payee Maintenance web page or the Payee Mail
    * Code web page depending what what "submit" value was used in the calling
    * method.
    *******************************************************************************/
   private void savePayeeMailCode(HttpServletRequest request, 
                            HttpServletResponse response, 
                            String returnUrl)
   {
      Payee payee = null;
      PayeeMailCode payeeMailCode = null;
      String[] messages = null;

      setPayeeMailCode(request);
      HttpSession session = request.getSession(false);
      payee = (Payee) session.getValue("payee");
      payeeMailCode = (PayeeMailCode) session.getValue("payeeMailCode");

      if (payeeMailCode.isValid())
      {
         if (payeeMailCode.save())
         {
            messages = new String[] {"Mail code \"" + payeeMailCode.getCode() + "\" saved."};
            payee.setMailCodes();
            request.setAttribute("cpa.app.vip.messages", messages);
            forward(request, response, returnUrl);
         }
         else
         {
            messages = new String[] {"Save failed."};
            request.setAttribute("cpa.app.vip.messages", messages);
            session.putValue("cpa.app.vip.isNewMailCode", "true");
            forward(request, response, "/PayeeMailCodeMaint.jsp");
         }
      }
      else
      {
         messages = payeeMailCode.getValidateMsgs();
         request.setAttribute("cpa.app.vip.messages", messages);
         forward(request, response, "/PayeeMailCodeMaint.jsp");
      }

   }


   /***************************************************************************
    * Tries to remove the payee mail code, loads the existing mail codes, and
    * then forwards the request to the Payee Mail Codes web page.
    ***************************************************************************/
   private void deletePayeeMailCode(HttpServletRequest request, 
                            HttpServletResponse response)
   {
      Payee payee = null;
      PayeeMailCode payeeMailCode = null;
      String[] messages = null;

      HttpSession session = request.getSession(false);
      payeeMailCode = (PayeeMailCode) session.getValue("payeeMailCode");

      if (payeeMailCode.remove())
      {
         messages = new String[] {"Mail code \"" + payeeMailCode.getCode() + "\" deleted."};
         clearPayeeMailCode(payeeMailCode);
      }
      else
         messages = new String[] {"Delete failed."};

      payee = (Payee) session.getValue("payee");
      payee.setMailCodes();

      request.setAttribute("cpa.app.vip.messages", messages);
      forward(request, response, "/PayeeMailCodes.jsp");
   }


   /***************************************************************************
    * Sets the properties in the Payee Mail Code business object from the http
    * request.
    ***************************************************************************/
   private void setPayeeMailCode(HttpServletRequest request)
   {
      PayeeMailCode payeeMailCode = null;

      String code = null;
      String payeePin = null;
      String emailAddress = null;
      String faxNum = null;
      String paymentNotifyYN = null;

      HttpSession session = request.getSession(false);
      payeeMailCode = (PayeeMailCode) session.getValue("payeeMailCode");

      code                       = request.getParameter("code");
      payeePin                   = request.getParameter("payeePin");
      emailAddress               = request.getParameter("emailAddress");
      faxNum                     = request.getParameter("faxNum");
      paymentNotifyYN            = request.getParameter("paymentNotifyYN");

      payeeMailCode.setCode(code);
      payeeMailCode.setPayeePin(payeePin);
      payeeMailCode.setEmailAddress(emailAddress);
      payeeMailCode.setFaxNum(faxNum);
      payeeMailCode.setPaymentNotifyYN(paymentNotifyYN);
   }


   private void clearPayeeMailCode(PayeeMailCode payeeMailCode)
   {
      payeeMailCode.setCode("");
      payeeMailCode.setPayeePin("");
      payeeMailCode.setEmailAddress("");
      payeeMailCode.setFaxNum("");
      payeeMailCode.setPaymentNotifyYN("");
   }


//*************************************************************
//************ Helper Methods *********************************
//*************************************************************

   /************************************************************************
    * Forwards the request to the provided url.
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    * @param url      forward to this location
    ************************************************************************/
   private void forward(HttpServletRequest request, 
            HttpServletResponse response, 
            String urlPath)
   {
      try
      {
         urlPath = response.encodeURL(urlPath);
         RequestDispatcher rd = 
            getServletContext().getRequestDispatcher(urlPath);
         rd.forward(request, response);
      }
      catch (IOException ex)
      {
         System.err.println("Error:StateToVendorPaymentCTL:forward:" + 
                            "IOException:urlPath=" + urlPath);
      }
      catch (ServletException ex)
      {
         System.err.println("Error:StateToVendorPaymentCTL:forward:" + 
                            "ServletException:urlPath=" + urlPath);
      }

   }


   /************************************************************************
    * Determines if request is from within the Comptroller domain.  It does
    * this by checking the end of the domain name for ".cpa.state.tx.us".
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   private boolean isFromComptroller(HttpServletRequest request)
   {
      String host = null;
      InetAddress ia = null;

      //Request.getHostName() will not work because web server has
      //"resolve host name" turned off.  Used InetAddress.getByName
      //instead
      try 
      {
         ia = InetAddress.getByName(request.getRemoteAddr());
      }
      catch (UnknownHostException ex)
      {
         System.err.println("Error:StateToVendorPaymentCTL:" + 
                            "isFromComptroller:" + "UnknownHostException");
      }

      host = ia.getHostName();
      return host.endsWith(".cpa.state.tx.us"); 
   }


   /************************************************************************
    * Called if error invoking method.
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   protected void handleControllerNotFound(HttpServletRequest request, 
                                           HttpServletResponse response)
   {
      response.setContentType("text/html");
      PrintWriter out = null;

      try
      {
         out = new PrintWriter (response.getOutputStream());
      }
      catch (IOException e)
      {}

      out.println("");
      out.println("Error:StateToVendorPaymentCTL:" +
                   "handleControllerNotFound:method could not be invoked");
      out.println("");
      out.flush();
   }


   /************************************************************************
    * Called if the method is not found (default method).
    *
    * @param request  object used to provide the servlet information about
    *                 the request
    * @param response response that the servlet provides back to the
    *                 client
    ************************************************************************/
   public void handleRequest(HttpServletRequest request, HttpServletResponse response)
   {
      response.setContentType("text/html");
      PrintWriter out = null;
      try
      {
         out = new PrintWriter (response.getOutputStream());
      }
      catch (IOException e)
      {}

      out.println("");
      out.println("Error:StateToVendorPaymentCTL:handleRequest:requested " +
                  "method not found.");
      out.println("");
      out.flush();
   }

}