package ru.orangesoftware.financisto2.test.builders; import ru.orangesoftware.financisto2.db.DatabaseAdapter; import ru.orangesoftware.financisto2.model.Account; import ru.orangesoftware.financisto2.model.Transaction; /** * Created by IntelliJ IDEA. * User: Denis Solonenko * Date: 2/13/11 8:52 PM */ public class TransferBuilder { private final DatabaseAdapter db; private final Transaction t = new Transaction(); public static TransferBuilder withDb(DatabaseAdapter db) { return new TransferBuilder(db); } private TransferBuilder(DatabaseAdapter db) { this.db = db; } public TransferBuilder fromAccount(Account a) { t.fromAccountId = a.id; return this; } public TransferBuilder fromAmount(long amount) { t.fromAmount = amount; return this; } public TransferBuilder toAccount(Account a) { t.toAccountId = a.id; return this; } public TransferBuilder toAmount(long amount) { t.toAmount = amount; return this; } public TransferBuilder dateTime(DateTime dateTime) { t.dateTime = dateTime.asLong(); return this; } public TransferBuilder scheduleOnce(DateTime dateTime) { t.dateTime = dateTime.asLong(); t.setAsScheduled(); return this; } public TransferBuilder scheduleRecur(String pattern) { t.recurrence = pattern; t.setAsScheduled(); return this; } public TransferBuilder note(String note) { t.note = note; return this; } public Transaction create() { long id = db.insertOrUpdate(t, null); t.id = id; return t; } }