// Customer.java

package org.objectweb.jonas.stests.appli;

import java.rmi.RemoteException;
import javax.ejb.EJBObject;

/**
 * Customer remote interface
 */
public interface Customer extends EJBObject {

	/**
   * Get the customer ID.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public Integer getCustomerID() throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Get the customer first name.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getFirstName() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer first name.
	 * <p>
   * @param fn Customer first name <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setFirstName(String fn) throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Get the customer last name.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getLastName() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer last name.
	 * <p>
   * @param ln Customer last name <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setLastName(String ln) throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Get the customer middle initials.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getMiddleInitials() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer initials.
	 * <p>
   * @param mi Customer middle initial <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setMiddleInitials(String mi) throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Get the customer phone number.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getPhone() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer phone number.
	 * <p>
   * @param phone Customer phone number <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setPhone(String phone) throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Get the customer's address line 1.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getAddressLine1() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's address line 1.
	 * <p>
   * @param line Customer address line 1 <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setAddressLine1(String line) throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Get the customer's address line 2.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getAddressLine2() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's address line 2.
	 * <p>
   * @param line Customer address line 2 <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setAddressLine2(String line) throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Get the customer's mailing address city.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getCity() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's mailing address city.
	 * <p>
   * @param city Customer city <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setCity(String city) throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Get the customer's mailing address state.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getState() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's mailing address state.
	 * <p>
   * @param state Customer state <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setState(String state) throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Get the customer's mailing address zip code.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public String getZip() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's mailing address zip code.
	 * <p>
   * @param zip Customer zip code <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setZip(String zip) throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Get the customer's total outstanding balance.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public float getBalance() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's total outstanding balance.
	 * <p>
   * @param balance Customer total outstanding balance <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setBalance(float balance) throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Get the customer's year-to-date outstanding balance.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public float getYearToDateBalance() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the customer's year-to-date outstanding balance.
	 * <p>
   * @param ytdBalance Customer year-to-date outstanding balance <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setYearToDateBalance(float ytdBalance) throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Update the balance and year to date balance with the total amount from an order.
	 * <p>
   * @param orderAmount Order amount to update the balances with <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void updateBalance(float orderAmount) throws RemoteException;

  /*------------------------------------------------------------------*/
	/**
   * Get the customer's credit limit.
	 * <p>
   * @return String
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public float getCreditLimit() throws RemoteException;
  /*------------------------------------------------------------------*/
	/**
   * Set the credit limit.
	 * <p>
   * @param limit New credit limit <i>(Mandatory)</i>
	 * @return void
   * @exception java.rmi.RemoteException Remote exception
	 */
	/*------------------------------------------------------------------*/
  public void setCreditLimit(float limit) throws RemoteException;

}
