/* * This code is distributed under The GNU Lesser General Public License (LGPLv3) * Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html * * Copyright Denis Pavlov 2009 * Web: http://www.genericdtoassembler.org * SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/ * SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/ */ package com.inspiresoftware.lib.dto.geda.examples.addressbook.service.impl; import com.inspiresoftware.lib.dto.geda.examples.addressbook.domain.Address; import com.inspiresoftware.lib.dto.geda.examples.addressbook.domain.Person; import com.inspiresoftware.lib.dto.geda.examples.addressbook.domain.impl.AddressImpl; import com.inspiresoftware.lib.dto.geda.examples.addressbook.domain.impl.PersonImpl; import com.inspiresoftware.lib.dto.geda.examples.addressbook.service.PersonDAO; import java.util.*; /** * . * <p/> * User: denispavlov * Date: Aug 30, 2012 * Time: 11:57:49 AM */ public class PersonDAOImpl implements PersonDAO { private final Map<String, List<Person>> people = new HashMap<String, List<Person>>(); private final Map<Person, Address> addresses = new HashMap<Person, Address>(); public Person addPerson(final String firstName, final String lastName) { final Person person = new PersonImpl(); person.setFirstName(firstName); person.setLastName(lastName); if (people.containsKey(firstName)) { people.get(firstName).add(person); } else { people.put(firstName, new ArrayList(Arrays.asList(person))); } return person; } public Address addAddress(final Person person, final String street, final String city, final String postCode, final String country) { final Address address = new AddressImpl(); address.setAddressLine1(street); address.setCity(city); address.setPostCode(postCode); address.setCountry(country); addresses.put(person, address); return address; } public List<Person> findByFirstName(final String firstName) { return people.get(firstName); } public Address lookUpAddress(final Person person) { return addresses.get(person); } }