diff --git a/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java b/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java
index 34d4248..553d6a2 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java
@@ -16,6 +16,8 @@
package com.ning.billing.payment.api;
+import com.google.common.base.Objects;
+
public class PaymentProviderAccount {
private final String id;
private final String accountNumber;
@@ -55,4 +57,68 @@ public class PaymentProviderAccount {
return defaultPaymentMethodId;
}
+ public static class Builder {
+ private String id;
+ private String accountNumber;
+ private String accountName;
+ private String phoneNumber;
+ private String defaultPaymentMethodId;
+
+ public Builder setId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ public Builder setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ return this;
+ }
+
+ public Builder setAccountName(String accountName) {
+ this.accountName = accountName;
+ return this;
+ }
+
+ public Builder setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ return this;
+ }
+
+ public Builder setDefaultPaymentMethod(String defaultPaymentMethod) {
+ this.defaultPaymentMethodId = defaultPaymentMethod;
+ return this;
+ }
+
+ public PaymentProviderAccount build() {
+ return new PaymentProviderAccount(id, accountNumber, accountName, phoneNumber, defaultPaymentMethodId);
+ }
+
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(id,
+ accountNumber,
+ accountName,
+ phoneNumber,
+ defaultPaymentMethodId);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (getClass() == obj.getClass()) {
+ PaymentProviderAccount other = (PaymentProviderAccount)obj;
+ if (obj == other) {
+ return true;
+ }
+ else {
+ return Objects.equal(id, other.id) &&
+ Objects.equal(accountNumber, other.accountNumber) &&
+ Objects.equal(phoneNumber, other.phoneNumber) &&
+ Objects.equal(defaultPaymentMethodId, other.defaultPaymentMethodId);
+ }
+ }
+ return false;
+ }
+
}