/**
 * Contains the detailed information about an address.
 * This provides the street address of the user 
 * when sending the message. 
 * @author Khong Lovan
 * @author Elias Vafiadis
 * @author Anthony Nakaar
 * @author Wanlin Liu
 * version 1.0 of October, 1999
 */

public interface StreetAddressInterface {
    
    
    
    //+------------+---------------------------------------------------------
    //| Extractors |
    //+------------+

     /**
      * Purpose: To obtain the street of the user's address.  
      * Parameter: No parameters needed.
      * Pre: street has been initialized 
      * Post:The value of the street is not changed
      * Return: the string value of the street 
      * errors: Throws no exceptions 
      */
    
    public String getStreet();

    
     /**    
      * Purpose: To obtain the state of the user's address.  
      * Parameter: No parameters needed.
      * Pre: state has been initialized
      * Post:The value of the state is not changed
      * Return: the string value of the state 
      * errors: Throws no exceptions 
      * /
    public String getState();
    
    
     /**    
      * Purpose: To obtain the country of the user's address.  
      * Parameter: No parameters needed.
      * Pre: country has been initialized
      * Post:The value of the country is not changed
      * Return: the string value of the country 
      * errors: Throws no exceptions 
      */ 
    public String getCountry();

    
    /** 
      *Purpose: To obtain the city of the user's address.  
      * Parameter: No parameters needed.
      * Pre: city has been initialized
      * Post:The value of the city is not changed
      * Return: the string value of the city 
      * errors: Throws no exceptions 
      */

    public String getCity();

     /** 
      *Purpose: To obtain the zipcode of the user's address.  
      * Parameter: No parameters needed.
      * Pre: zipcode has been initialized
      * Post:The value of the zipcode is not changed
      * Return: the integer value of the zipcode
      * errors: Throws no exceptions 
      */
    
    public String getZip();


     /** 
      *Purpose: To obtain the user's phonenumber.  
      * Parameter: No parameters needed.
      * Pre: phonenumber has been initialized
      * Post:The value of the phonenumber is not changed
      * Return: the string value of the phonenumber
      * errors: Throws no exceptions 
      */
    public String getPhoneNum();
    

    //+-----------+--------------------------------------------------------
    //| Modifiers |
    //+-----------+
    
    /** 
      *Purpose: change the value of street   
      * Parameter:string
      * Pre: none
      * Post:The value of the street is changed to the parameter
      * Return: nothing
      * errors: Throws no exceptions 
      */
    public void setStreet(String street);
  

     /** 
      *Purpose: to change the value of the state  
      * Parameter: string
      * Pre: none
      * Post:The value of the state is changed to the parameter
      * Return: nothing
      * errors: Throws no exceptions 
      */
    public void setState(String state);

    

     /** 
      *Purpose:To change the value of the country  
      * Parameter: string
      * Pre: none
      * Post:The value of the country is changed to the parameter 
      * Return: nothing
      * errors: Throws no exceptions 
      */
    public void setCountry(String country); 
   

     /** 
      *Purpose: To change the value of the city  
      * Parameter: string
      * Pre: none
      * Post:The value of the city is changed to the parameter
      * Return: nothing
      * errors: Throws no exceptions 
      */
    public void setCity(String city);
  

     /** 
      *Purpose: To change the value of the zipcode.  
      * Parameter: string
      * Pre:none
      * Post:The value of the zipcode is changed to the parameter
      * Return: nothing
      * errors: Throws no exceptions 
      */
    public void setZip(String zip);
    
    /*Purpose: To change the value of the phonenumber.  
     * Parameter: string
     * Pre:none
     * Post:The value of the phonenumber is changed to the parameter
     * Return: nothing
     * errors: Throws no exceptions 
     */
     
    public void setPhoneNum(String phonenum);
  

    //+--------------+--------------------------------------------------
    //| Capabilities |
    //+--------------+

    /*Purpose: To change the value of the phonenumber.  
     * Parameter: string
     * Pre:none
     * Post:The value of the phonenumber is changed to the parameter
     * Return: nothing
     * errors: Throws no exceptions 
     */
     
    public String toString();

} // interface StreetAddressInterface

