/**
 
* Contains the detailed information about an address.

 * @author Khong Lovan
 * @author Elias Vafiadis
 * @author Anthony Nakaar
 * @author Wanlin Liu
 * version 1.0 of October, 1999
 */





public class StreetAddress{
    
    //+--------+------------------------------------------------------------
    //| Fields |
    //+--------+

    /** Number of the house, street name ,apartment number, etc. */
    String street;
    
    /** City name.*/
    String city;
    
    /** State name. */
    String state;

    /** Country name. */
    String country;

    /** Zip number. */
    String zip;

    /** Telephone number. */
    String phoneNum;
    

    //+--------------+---------------------------------------------------------
    //| Constructors |
    //+--------------+

    /**
     * this constructor takes 3 strings, street name inclucing number of the
     * house, city name and the state name. and builds a new StreetAddress
     */
    public StreetAddress(String streetN, String cityName, String stateName) {
        street = streetN;
        city = cityName;
        state = stateName;
    }

    /**
     * this constructor takes 4 strings, street name inclucing number of the
     * house, city name, the state name and the country name. 
     * and builds a new StreetAddress
     */
    public StreetAddress(String streetN, String cityName, String stateName,
                         String countryName) {
        street = streetN;
        city = cityName;
        state = stateName;
        country = countryName;
    } 

    /**
     * this constructor takes 6 strings, street name inclucing number of the
     * house, city name, the state name, the country name, the zip code and 
     * the phone number. 
     * and builds a new StreetAddress
     */
    public StreetAddress(String streetN, String cityName, String stateName,
                         String countryName, String postCode, String foneN) {
        street = streetN;
        city = cityName;
        state = stateName;
        country = countryName;
        zip = postCode;
        phoneNum = foneN;
    } 

    

    //+------------+---------------------------------------------------------
    //| 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() {
        return "Park";
    }//getStreet()
    

    /**
     * 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() {
       return "Grinnell";
    }//getCity()
     
    /**
      * Purpose: To obtain the state of the user's address.  
      * Parameter: No parameters needed.
      * Pre: statet 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() {
        return "Iowa";
    }//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() {
    return "United States";
    }//getCountry()

    
     /**
      * 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 string value of the zipcode 
      * errors: Throws no exceptions 
      */
    public String getZip() {
        return "50112";
    }//getZip()

     /**
      * Purpose: To obtain the phone number of the user's address.  
      * Parameter: No parameters needed.
      * Pre: phone number has been initialized 
      * Post:The value of the phone number is not changed
      * Return: the string value of the phone number 
      * errors: Throws no exceptions 
      */
    public String getPhoneNum() {
        return "2699369";
    }//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 streetName) {
        this.street = streetName;
    }//setStreet()

 /** 
      *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 stateName) {
        this.state = stateName;
    }//setState()
/** 
      *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 countryName) {
        this.country = countryName;
    }//setCountry()
    
    /** 
     *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 cityName) {
        this.city = cityName;
    }//setCity()
    /** 
     *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 postCode) {
        this.zip = postCode;
    }//setZip()
    
    /*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 foneNum) {
        this.phoneNum = foneNum;
    }//setPhoneNum()
    
    //+--------------+--------------------------------------------------
    //| Capabilities |
    //+--------------+
    
    public String toString() {
        return "This is a stub.";
    }//toString()
}

