package org.fipro.eclipse.migration.e4.service.internal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.fipro.eclipse.migration.e4.model.Person; import org.fipro.eclipse.migration.e4.service.PersonService; import org.osgi.service.component.annotations.Component; /** * Class that acts as service for accessing numerous {@link Person}s. * The values are randomly put together out of names and places from "The Simpsons" */ @Component public final class PersonServiceImpl implements PersonService { public String[] maleNames = { "Bart", "Homer", "Lenny", "Carl", "Waylon", "Ned", "Timothy"}; public String[] femaleNames = { "Marge", "Lisa", "Maggie", "Edna", "Helen", "Jessica"}; public String[] lastNames = { "Simpson", "Leonard", "Carlson", "Smithers", "Flanders", "Krabappel", "Lovejoy"}; @Override public List<Person> getPersons(int numberOfPersons) { List<Person> result = new ArrayList<Person>(); for (int i = 0; i < numberOfPersons; i++) { result.add(createPerson(i)); } return result; } @Override public Person createPerson(int id) { Random randomGenerator = new Random(); Person result = new Person(id); result.setGender(Person.Gender.values()[randomGenerator.nextInt(2)]); if (result.getGender().equals(Person.Gender.MALE)) { result.setFirstName(maleNames[randomGenerator.nextInt(maleNames.length)]); } else { result.setFirstName(femaleNames[randomGenerator.nextInt(femaleNames.length)]); } result.setLastName(lastNames[randomGenerator.nextInt(lastNames.length)]); result.setMarried(randomGenerator.nextBoolean()); int month = randomGenerator.nextInt(12); int day = 0; if (month == 2) { day = randomGenerator.nextInt(28); } else { day = randomGenerator.nextInt(30); } int year = 1920 + randomGenerator.nextInt(90); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { result.setBirthday(sdf.parse(""+year+"-"+month+"-"+day)); } catch (ParseException e) { e.printStackTrace(); } return result; } }