/**
 * Class Adresse - used to store address details for a post address
 * 
 * @author  Michael Opel, Peter Rüßmann
 * @version 1.0, 17.11.2003
 * */
public class Adresse implements Cloneable
{
    private String street;
    private String town;
    private String postCode;
    private String country;
    /**
     * Constructs an Adresse with full details
     */
    public Adresse(String street, String town, String postCode, String country)
    {
        this.street = street;
        this.town = town;
        this.postCode = postCode;
        this.country = country;
    }
    /**
     * 
     * Generates the String representation.
     * @return A string representation of the Adresse object.
     */
    public String toString()
    {
        return street + "\n" +
               postCode + " " + town + ", " +
               country + "\n";
    }
    
    /**
     * Duplicates the object.
     * @return The cloned object.
     */
    public Object clone()
    {
       return new Adresse(this.street, this.town, this.postCode, this.country);
    }
    /**
     * Sets the street attribute of the Adresse.
     * @param The street to become valid for the Adresse.
     */
    public void setStreet(String street)
    {
       this.street = street;
    }
    /**
     * Gets the street attribute of the Adresse.
     * @return The street of the Adresse.
     */
    public String getStreet()
    {
       return this.street;
    }
    /**
     * Sets the town attribute of the Adresse.
     * @param The town to become valid for the Adresse.
     */
    public void setTown(String town)
    {
       this.town = town;
    }
    /**
     * Gets the town attribute of the Adresse.
     * @return The town of the Adresse.
     */
    public String getTown()
    {
       return this.town;
    }
    /**
     * Sets the postCode attribute of the Adresse.
     * @param The postCode to become valid for the Adresse.
     */
    public void setPostCode(String postCode)
    {
       this.postCode = postCode;
    }
    /**
     * Gets the postCode attribute of the Adresse.
     * @return The postCode of the Adresse.
     */
    public String getPostCode()
    {
       return this.postCode;
    }
    /**
     * Sets the country attribute of the Adresse.
     * @param The country to become valid for the Adresse.
     */
    public void setCountry(String country)
    {
       this.country = country;
    }
    /**
     * Gets the country attribute of the Adresse.
     * 
     * @return The country of the Adresse.
     */
    public String getCountry()
    {
       return this.country;
    }   
}