package com.liato.bankdroid.api.domain.account.impl; import com.liato.bankdroid.api.domain.account.Transaction; import org.joda.time.DateTime; import java.math.BigDecimal; public class TransactionBuilder { private BasicTransaction mTransaction; public TransactionBuilder(BigDecimal amount, String currency, DateTime transactionDate) { this.mTransaction = new BasicTransaction(amount, currency, transactionDate); } public TransactionBuilder description(String description) { mTransaction.description = description; return this; } public TransactionBuilder pending(boolean pending) { mTransaction.pending = pending; return this; } public Transaction build() { return mTransaction; } private static class BasicTransaction implements Transaction { private BigDecimal amount; private String description; private String currency; private DateTime transactionDate; private boolean pending; private BasicTransaction(BigDecimal amount, String currency, DateTime transactionDate) { this.amount = amount; this.currency = currency; this.transactionDate = transactionDate; } @Override public BigDecimal getAmount() { return amount; } @Override public String getDescription() { return description; } @Override public String getCurrency() { return currency; } @Override public DateTime getTransactionDate() { return transactionDate; } @Override public boolean isPending() { return pending; } } }