blob: 1087eb16906d35ee9d8609e584930b3d71591ade [file] [log] [blame]
/*
* $Id: ContactGenerator.java 5394 2006-04-16 06:36:52 -0700 (Sun, 16 Apr 2006) jdonnerstag $ $Revision:
* 3056 $ $Date: 2006-04-16 06:36:52 -0700 (Sun, 16 Apr 2006) $
*
* ==================================================================== Licensed
* under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the
* License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package wicket.threadtest.apps.app1;
import java.util.Collection;
/**
* generates random contacts
*
* @author igor
*
*/
public class ContactGenerator {
private static ContactGenerator instance = new ContactGenerator();
private static long nextId = 1;
/**
* @return static instance of generator
*/
public static ContactGenerator getInstance() {
return instance;
}
private String[] firstNames = { "Jacob", "Emily", "Michael", "Sarah", "Matthew", "Brianna", "Nicholas", "Samantha",
"Christopher", "Hailey", "Abner", "Abby", "Joshua", "Douglas", "Jack", "Keith", "Gerald", "Samuel",
"Willie", "Larry", "Jose", "Timothy", "Sandra", "Kathleen", "Pamela", "Virginia", "Debra", "Maria", "Linda" };
private String[] lastNames = { "Smiith", "Johnson", "Williams", "Jones", "Brown", "Donahue", "Bailey", "Rose",
"Allen", "Black", "Davis", "Clark", "Hall", "Lee", "Baker", "Gonzalez", "Nelson", "Moore", "Wilson",
"Graham", "Fisher", "Cruz", "Ortiz", "Gomez", "Murray" };
private ContactGenerator() {
}
/**
* generates a new contact
*
* @return generated contact
*/
public Contact generate() {
Contact contact = new Contact(randomString(firstNames), randomString(lastNames));
contact.setId(generateId());
contact.setHomePhone(generatePhoneNumber());
contact.setCellPhone(generatePhoneNumber());
return contact;
}
/**
* generats <code>count</code> number contacts and puts them into
* <code>collection</code> collection
*
* @param collection
* @param count
*/
public void generate(Collection<Contact> collection, int count) {
for (int i = 0; i < count; i++) {
collection.add(generate());
}
}
/**
* @return unique id
*/
public synchronized long generateId() {
return nextId++;
}
private String generatePhoneNumber() {
return new StringBuffer().append(rint(2, 9)).append(rint(0, 9)).append(rint(0, 9)).append("-555-").append(
rint(1, 9)).append(rint(0, 9)).append(rint(0, 9)).append(rint(0, 9)).toString();
}
private String randomString(String[] choices) {
return choices[rint(0, choices.length)];
}
private int rint(int min, int max) {
return (int) (Math.random() * (max - min) + min);
}
}