    /*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements.  See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License.  You may obtain a copy of the License at
    *
    *     http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    package cal;

    import java.beans.*;
    import javax.servlet.http.*;
    import javax.servlet.*;
    import java.util.Hashtable;

    public class TableBean {

      Hashtable table;
      JspCalendar JspCal;
      Entries entries;
      String date;
      String name = null;
      String email = null;
      boolean processError = false;

      public TableBean () {
        this.table = new Hashtable (10);
        this.JspCal = new JspCalendar ();
        this.date = JspCal.getCurrentDate ();
      }

      public void setName (String nm) {
        this.name = nm;
      }

      public String getName () {
        return this.name;
      }

      public void setEmail (String mail) {
        this.email = mail;
      }

      public String getEmail () {
        return this.email;
      }

      public String getDate () {
        return this.date;
      }

      public Entries getEntries () {
        return this.entries;
      }

      public void processRequest (HttpServletRequest request) {

        // Get the name and e-mail.
        this.processError = false;
        if (name == null || name.equals("")) setName(request.getParameter ("name"));
        if (email == null || email.equals("")) setEmail(request.getParameter ("email"));
        if (name == null || email == null ||
    		name.equals("") || email.equals("")) {
          this.processError = true;
          return;
        }

        // Get the date.
        String dateR = request.getParameter ("date");
        if (dateR == null) date = JspCal.getCurrentDate ();
        else if (dateR.equalsIgnoreCase("next")) date = JspCal.getNextDate ();
        else if (dateR.equalsIgnoreCase("prev")) date = JspCal.getPrevDate ();

        entries = (Entries) table.get (date);
        if (entries == null) {
          entries = new Entries ();
          table.put (date, entries);
        }

        // If time is provided add the event.
    	String time = request.getParameter("time");
        if (time != null) entries.processRequest (request, time);
      }

      public boolean getProcessError () {
        return this.processError;
      }
    }