import java.lang.*;
/**
* Class Person holds information entirely belonging to one person.
*
* @author Michael Opel, Peter Rüßmann
* @version 28.11.2003
*/
class Person implements Cloneable
{
private String name;
private String yearOfBirth;
private Adresse address;
/**
* Create a person with given name, age, and address.
*/
Person(String name, String yearOfBirth,
String street, String town, String postcode, String country)
{
this.name = name;
this.yearOfBirth = yearOfBirth;
this.address = new Adresse(street,town, postcode, country);
}
/**
* Set a new name for the Person.
* @param newName The name to become valid for the Person.
*/
public void setName(String newName)
{
this.name = newName;
}
/**
* Return the name of the Person.
* @return The name of the Person.
*/
public String getName()
{
return this.name;
}
/**
* Set a new year of birth for the Person.
*/
public void setYearOfBirth(String newYearOfBirth)
{
this.yearOfBirth = newYearOfBirth;
}
/**
* Get the year of birth of the Person.
* @return The year of birth of the Person.
*/
public String getYearOfBirth()
{
return this.yearOfBirth;
}
/**
* Get a string representation of the Person.
* @return The detailed string representation of the Person.
*/
public String toString() // redefined from "Object"
{
return this.name + "\n" +
this.yearOfBirth + "\n" +
this.address.toString();
}
/**
* Compares string representation of the Person.
* @return The detailed string representation of the Person.
*/
public boolean lessThan(Person person)
{
char[] thisCharArray = this.name.toCharArray();
char[] personCharArray = person.getName().toCharArray();
int minLength = java.lang.Math.min(thisCharArray.length, personCharArray.length);
for (int i = 0; i < minLength; i++)
{
int thisChar = (int)thisCharArray[i];
int persChar = (int)personCharArray[i];
if (thisChar < persChar) return true;
if (thisChar > persChar) return false;
}
if (thisCharArray.length < personCharArray.length)
return true;
else
return false;
}
public Object clone()
{
return new Person(this.name, this.yearOfBirth,
this.address.getStreet(), this.address.getTown(),
this.address.getPostCode(), this.address.getCountry());
}
}