package org.opendolphin.demo.data;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
public class AddressGenerator extends AbstractValueGenerator<Address> {
private static final Logger log = Logger.getLogger(AddressGenerator.class.getName());
private FirstNameGenerator firstNameGenerator = new FirstNameGenerator();
private LastNameGenerator lastNameGenerator = new LastNameGenerator();
private CityNameGenerator cityNameGenerator = new CityNameGenerator();
private static final int START_ZIP = 1000;
private static final int END_ZIP = 5000;
private final List<String> cities = new ArrayList<String>();
public List<Address> getAddressList(int numEntries) {
log.info("initializing " + (END_ZIP - START_ZIP) + " cities...");
for (int i = START_ZIP; i < END_ZIP; i++) {
cities.add(i + " " + cityNameGenerator.randomValue());
}
List<Address> addressList = new ArrayList<Address>();
log.info("initializing " + numEntries + " addresses...");
for (int i=0; i < numEntries; i++) {
addressList.add(randomValue());
}
return addressList;
}
@Override
public Address randomValue() {
Address address = new Address();
address.setFirst(firstNameGenerator.randomValue());
address.setLast(lastNameGenerator.randomValue());
address.setCity(getRandomString(cities.toArray(new String[cities.size()])));
address.setPhone(randomPhone());
return address;
}
private String randomPhone() {
int area = 100 + Double.valueOf(900 * Math.random()).intValue();
int number = 1000 + Double.valueOf(9000 * Math.random()).intValue();
return String.format("%s %s", area, number);
}
public static void main(String[] args) {
AddressGenerator addressGenerator = new AddressGenerator();
for (int i=0; i < 10000; i++) {
System.out.println(addressGenerator.randomValue());
}
}
}