AddressBook sample source
Sample code use in various examples throughout the Javadocs. Represents a simple POJO model consisting
of a collection (LinkedList
), beans (Address
, Person
), and a type 4a transformed type (Calendar
).
Public fields are used for bean properties in-leu of getters and setters to reduce the size of the example.
Bean properties defined using getters and setters would work identically.
// A collection of people
public class AddressBook extends LinkedList<Person> {
// Extra method for adding a person to this address book.
// Used in PojoIntrospector usage examples.
public void addPerson(String name, String birthDate, List<Address> addresses) {
add(new Person(name, birthdate, addresses));
}
}
public class Address {
// Bean properties
public String street, city, state;
public int zip;
public boolean isCurrent;
// Bean constructor
public Address() {}
// Other constructor
public Address(String street, String city, String state, int zip, boolean isCurrent) {
this.street = street;
this.city = city;
this.state = state;
this.zip = zip;
this.isCurrent = isCurrent;
}
}
public class Person {
// Bean properties
public String name;
public int age;
public Calendar birthDate;
public LinkedList<Address> addresses = new LinkedList<Address>();
// Bean constructor
public Person() {}
// Other constructor
public Person(String name, String birthDate, Address...addresses) {
this.name = name;
this.birthDate = getBirthDate(birthDate);
this.age = calcAge(birthDate);
this.addresses.addAll(Arrays.asList(addresses));
}
// Other method
// Calculates a persons age based on the birthdate
public static int calcAge(String birthDate) {
return new GregorianCalendar().get(Calendar.YEAR) - getBirthDate(birthDate).get(Calendar.YEAR);
}
// Utility method
// Converts a birthdate string to a Calendar
private static Calendar getBirthDate(String birthDate) {
try {
Calendar c = new GregorianCalendar();
c.setTime(DateFormat.getDateInstance(DateFormat.MEDIUM).parse(birthDate));
return c;
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}