Payee.java


package cpa.app.vip;

import java.io.*;
import java.util.*;

/****************************************************
 * This class is a bean class representing a Payee.
 *
 * @author Paul McKinney
 ****************************************************/
public class Payee implements Serializable
{

   //properties
   private String id = "";
   private String name = "";
   private String contactFirstName = "";
   private String contactLastName = "";
   private String contactTitle = "";
   private String contactTelephoneNum = "";
   private String contactTelephoneExtention = "";
   private Vector mailCodes = new Vector();


   //getters
   public String getId()
   {
      return id;
   }

   public String getName()
   {
      return name;
   }

   public String getContactFirstName()
   {
      return contactFirstName;
   }

   public String getContactLastName()
   {
      return contactLastName;
   }

   public String getContactTitle()
   {
      return contactTitle;
   }

   public String getContactTelephoneNum()
   {
      return contactTelephoneNum;
   }

   public String getContactTelephoneExtention()
   {
      if (contactTelephoneExtention == null)
         return "";
      else
         return contactTelephoneExtention;
   }


   //mail code is Comptroller terminology for a vendor's outlet
   //or seperate phyiscal location if the vendor has more than
   //one location
   public PayeeMailCode getMailCode(String mailCode)
   {
      PayeeMailCode retObject = null;
      PayeeMailCode pmc = new PayeeMailCode();

      pmc.setPayeePin(getId());
      pmc.setCode(mailCode);

      if(pmc.restore())
         retObject = pmc;

      return retObject;
   }


   boolean setMailCodes()
   {
      boolean isSet = false;
      PayeeDA payeeDA = new PayeeDA(this);

      mailCodes.removeAllElements();
      String[] mailCodeCodes = payeeDA.selectMailCodeCodes();

      if (mailCodeCodes == null)
         isSet = false;
      else
      {
         for (int i=0; i<mailCodeCodes.length; i++)
            mailCodes.addElement(getMailCode(mailCodeCodes[i]));
         isSet = true;
      }
      return isSet;
   }


   public PayeeMailCode[] getMailCodes()
   {
      PayeeMailCode[] mailCodeArr = new PayeeMailCode[mailCodes.size()];
      mailCodes.copyInto(mailCodeArr);

      return mailCodeArr;
   }


   public PayeeMailCode getMailCode()
   {
      return new PayeeMailCode();
   }



   //setters
   void setId(String id)
   {
      this.id = id.trim();
   }

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

   void setContactFirstName(String contactFirstName)
   {
      this.contactFirstName = contactFirstName.trim();
   }

   void setContactLastName(String contactLastName)
   {
      this.contactLastName = contactLastName.trim();
   }

   void setContactTitle(String contactTitle)
   {
      this.contactTitle = contactTitle.trim();
   }

   void setContactTelephoneNum(String contactTelephoneNum)
   {
      this.contactTelephoneNum = contactTelephoneNum.trim();
   }

   void setContactTelephoneExtention(String contactTelephoneExtention)
   {
      if (contactTelephoneExtention == null)
         this.contactTelephoneExtention = null;
      else
         this.contactTelephoneExtention = contactTelephoneExtention.trim();
   }


   boolean isValid()
   {
      String[] msgArray = getValidateMsgs();

      if (msgArray.length == 0)
         return true;
      else
         return false;
   }

   boolean isValidToDelete()
   {
      String[] msgArray = getValidateDeleteMsgs();

      if (msgArray.length == 0)
         return true;
      else
         return false;
   }


   public String[] getValidateDeleteMsgs()
   {
      Vector messages = new Vector();

      if (restore())
      {
         setMailCodes();
         if (getMailCodes().length == 0)
            ; //do nothing
         else
            messages.addElement("Mail Codes exist for Payee: \"" + getId() + "\".");
      }
      else
            messages.addElement("Payee: \"" + getId() + "\" not found.");

      String[] arr = new String[messages.size()];
      messages.copyInto(arr);

      return arr;
   }


   public String[] getValidateMsgs()
   {
      Vector messages = new Vector();

      if (getId().equals(""))
         messages.addElement("ID field required.");
      else
         if (getId().length() < 11)
            messages.addElement("ID field requires 11 characters.");

      if (getName().equals(""))
         messages.addElement("Name field required.");
      if (getContactFirstName().equals(""))
         messages.addElement("First Name field required.");
      if (getContactLastName().equals(""))
         messages.addElement("Last Name field required.");
      if (getContactTitle().equals(""))
         messages.addElement("Title field required.");
      if (getContactTelephoneNum().equals(""))
         messages.addElement("Telephone Number field required.");

      String[] arr = new String[messages.size()];
      messages.copyInto(arr);

      return arr;
   }


   boolean save()
   {
      boolean isSaved = false;
      PayeeDA payeeDA = new PayeeDA(this);

      if (isValid())
      {
         if (payeeDA.save())
            isSaved = true;
      }

      return isSaved;
   }


   boolean restore()
   {
      PayeeDA payeeDA = new PayeeDA(this);
      return (payeeDA.restore());
   }


   boolean remove()
   {
      PayeeDA payeeDA = new PayeeDA(this);
      return  payeeDA.remove();
   }


   //for debugging only
   public String toString()
   {
      return  "[" + getId() + "]" +
              "[" + getName() + "]" +
              "[" + getContactFirstName() + "]" +
              "[" + getContactLastName() + "]" +
              "[" + getContactTitle() + "]" +
              "[" + getContactTelephoneNum() + "]" +
              "[" + getContactTelephoneExtention() + "]";
   }

}