001 /* 002 * Copyright 2002-2006 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 005 * use this file except in compliance with the License. You may obtain a copy of 006 * the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 013 * License for the specific language governing permissions and limitations under 014 * the License. 015 */ 016 package org.springframework.richclient.samples.simple.domain; 017 018 import java.util.ArrayList; 019 import java.util.Date; 020 import java.util.HashSet; 021 import java.util.List; 022 023 /** 024 * This class provides a trivial in-memory datastore to hold all the contacts. In a real application, this would 025 * probably be a server-side object that is accessed via an interface using the typical Spring wiring and remoting. 026 * @author Larry Streepy 027 */ 028 public class ContactDataStore { 029 030 /** Simple Id generator. */ 031 private static int nextId = 1; 032 033 /** Our contacts. */ 034 private HashSet contacts = new HashSet(); 035 036 /** 037 * Default constructor - "load" our initial data. 038 */ 039 public ContactDataStore() { 040 loadData(); 041 } 042 043 /** 044 * Get all the contacts. 045 * @return Array of all contact objects 046 */ 047 public Contact[] getAllContacts() { 048 return (Contact[]) contacts.toArray(new Contact[0]); 049 } 050 051 /** 052 * Update a contact. 053 */ 054 public void update(Contact contact) { 055 contacts.add(contact); 056 } 057 058 /** 059 * Delete a contact. 060 */ 061 public void delete(Contact contact) { 062 contacts.remove(contact); 063 } 064 065 /** 066 * Add a new contact. 067 */ 068 public void add(Contact contact) { 069 contact.setId(nextId++); // Give it a unique id 070 contacts.add(contact); 071 } 072 073 /** 074 * Load our initial data. 075 */ 076 private void loadData() { 077 contacts.add(makeContact("Larry", "Streepy", "123 Some St.", "Apt. #26C", "New York", "NY", "10010", 078 ContactType.BUSINESS, "Lorem ipsum...")); 079 contacts.add(makeContact("Keith", "Donald", "456 WebFlow Rd.", "2", "Cooltown", "NY", "10001", 080 ContactType.BUSINESS, "Lorem ipsum...")); 081 contacts.add(makeContact("Steve", "Brothers", "10921 The Other Street", "", "Denver", "CO", "81234-2121", 082 ContactType.PERSONAL, "Lorem ipsum...")); 083 contacts.add(makeContact("Carlos", "Mencia", "4321 Comedy Central", "", "Hollywood", "CA", "91020", 084 ContactType.PERSONAL, "Lorem ipsum...")); 085 contacts.add(makeContact("Jim", "Jones", "1001 Another Place", "", "Dallas", "TX", "71212", 086 ContactType.PERSONAL, "Lorem ipsum...")); 087 contacts.add(makeContact("Jenny", "Jones", "1001 Another Place", "", "Dallas", "TX", "75201", 088 ContactType.PERSONAL, "Lorem ipsum...")); 089 contacts.add(makeContact("Greg", "Jones", "9 Some Other Place", "Apt. 12D", "Chicago", "IL", "60601", 090 ContactType.PERSONAL, "Lorem ipsum...")); 091 } 092 093 private List<TodoItem> getTodoItemList() 094 { 095 List<TodoItem> l = new ArrayList<TodoItem>(); 096 l.add(new TodoItem("test", "test", new Date())); 097 return l; 098 } 099 100 /** 101 * Make a Contact object with the given data. 102 * @return Contact object 103 */ 104 private Contact makeContact(String first, String last, String address1, String address2, String city, String state, 105 String zip, ContactType contactType, String memo) { 106 Contact contact = new Contact(); 107 contact.setId(nextId++); 108 contact.setContactType(contactType); 109 contact.setFirstName(first); 110 contact.setLastName(last); 111 contact.setMemo(memo); 112 113 Address address = contact.getAddress(); 114 address.setAddress1(address1); 115 address.setAddress2(address2); 116 address.setCity(city); 117 address.setState(state); 118 address.setZip(zip); 119 120 contact.setTodoItems(getTodoItemList()); 121 122 return contact; 123 } 124 }