package net.stsmedia.financemanager.service;
import java.util.Date;
import java.util.HashSet;
import net.stsmedia.financemanager.domain.Account;
import net.stsmedia.financemanager.domain.Address;
import net.stsmedia.financemanager.domain.Investment;
import net.stsmedia.financemanager.domain.Loan;
import net.stsmedia.financemanager.domain.Person;
import net.stsmedia.financemanager.domain.Product;
/**
* A simple data seeder for domain objects.
*
* @author Stefan Schmidt
* @since 0.2
*
*/
public class DataSeeder {
public static Account generateAccount() {
Account account = new Account();
account.setName("Homer Simpson House Loan");
account.setManager(generatePerson());
HashSet<Person> owners = new HashSet<Person>();
owners.add(generatePerson());
owners.add(generatePerson());
account.setOwners(owners);
HashSet<Investment> investments = new HashSet<Investment>();
investments.add(generateInvestment());
investments.add(generateInvestment());
account.setInvestments(investments);
return account;
}
public static Person generatePerson() {
Person person = new Person();
person.setFirstName("Homer");
person.setLastName("Simpson");
person.setEmail("homer@simpsons.com");
person.setAddress(generateAddress());
return person;
}
public static Investment generateInvestment() {
Investment investment = new Investment();
investment.setInitialUnitPrice(1.7f);
investment.setUnit(100d);
investment.setTransactionDate(new Date(System.currentTimeMillis()));
investment.setProduct(generateProduct());
return investment;
}
public static Product generateProduct() {
Loan loan = new Loan();
loan.setName("Home Loan");
loan.setDescription("Real ripoff");
loan.setInterest(25f);
loan.setManagementFee(5d);
HashSet<Person> lenders = new HashSet<Person>();
lenders.add(generatePerson());
lenders.add(generatePerson());
loan.setLenders(lenders);
return loan;
}
public static Address generateAddress() {
return new Address("Evergreen Terrace", "99a", "Springfield", "57657", "Ohio", "USA");
}
}