package com.liato.bankdroid.api.domain.account.impl;
import com.liato.bankdroid.api.domain.account.PrePaidCardAccount;
import org.joda.time.DateTime;
import java.math.BigDecimal;
import java.util.Map;
import static com.liato.bankdroid.api.domain.account.impl.AccountBuilder.BasicAccount;
public class PrePaidCardAccountBuilder extends AbstractAccountBuilder<PrePaidCardAccountBuilder> {
private DateTime mValidFrom;
private DateTime mExpirationDate;
public PrePaidCardAccountBuilder(String id, String name, String currency) {
super(id, name, currency);
}
protected PrePaidCardAccountBuilder self() {
return this;
}
public PrePaidCardAccountBuilder validFrom(DateTime validFrom) {
mValidFrom = validFrom;
return this;
}
public PrePaidCardAccountBuilder expirationDate(DateTime expirationDate) {
mExpirationDate = expirationDate;
return this;
}
public PrePaidCardAccount build() {
return new BasicPrePaidCardAccount(mId, mName, mCurrency, mBalance, mCustomAttributes,
mExpirationDate, mValidFrom);
}
private static class BasicPrePaidCardAccount extends BasicAccount implements PrePaidCardAccount {
private DateTime mExpirationDate;
private DateTime mValidFrom;
private BasicPrePaidCardAccount(String id, String name, String currency, BigDecimal balance,
Map<String, String> customAttributes, DateTime expirationDate, DateTime validFrom) {
super(id, name, currency, balance, customAttributes);
mExpirationDate = expirationDate;
mValidFrom = validFrom;
}
@Override
public DateTime getExpirationDate() {
return mExpirationDate;
}
@Override
public DateTime getValidFrom() {
return mValidFrom;
}
}
}