killbill-uncached

account: refactor handling of defaults Signed-off-by:

6/25/2012 8:28:14 PM

Details

diff --git a/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java b/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java
index 72e3516..3a04845 100644
--- a/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java
+++ b/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java
@@ -22,12 +22,22 @@ import org.joda.time.DateTimeZone;
 
 import com.google.common.base.Objects;
 import com.google.common.base.Optional;
-import com.google.common.base.Strings;
 import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.util.entity.EntityBase;
 
 public class DefaultAccount extends EntityBase implements Account {
+    // Default values. When updating an account object, null values are
+    // interpreted as "no change". You can use these defaults to reset
+    // some fields
+    public static final String DEFAULT_STRING_VALUE = "";
+    public static final Integer DEFAULT_INTEGER_VALUE = 0;
+    public static final Integer DEFAULT_BCD_VALUE = DEFAULT_INTEGER_VALUE;
+    public static final Currency DEFAULT_CURRENCY_VALUE = Currency.USD;
+    public static final DateTimeZone DEFAULT_TIMEZONE_VALUE = DateTimeZone.UTC;
+    private static final Boolean DEFAULT_MIGRATED_VALUE = true;
+    private static final Boolean DEFAULT_NOTIFIED_FOR_INVOICES_VALUE = false;
+
     private final String externalKey;
     private final String email;
     private final String name;
@@ -102,97 +112,98 @@ public class DefaultAccount extends EntityBase implements Account {
 
     @Override
     public String getExternalKey() {
-        return Strings.nullToEmpty(externalKey);
+        return Objects.firstNonNull(externalKey, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getName() {
-        return Strings.nullToEmpty(name);
+        return Objects.firstNonNull(name, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getEmail() {
-        return Strings.nullToEmpty(email);
+        return Objects.firstNonNull(email, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public Integer getFirstNameLength() {
-        return Objects.firstNonNull(firstNameLength, 0);
+        return Objects.firstNonNull(firstNameLength, DEFAULT_INTEGER_VALUE);
     }
 
     @Override
     public Currency getCurrency() {
-        return currency;
+        return Objects.firstNonNull(currency, DEFAULT_CURRENCY_VALUE);
     }
 
     @Override
     public Integer getBillCycleDay() {
-        return Objects.firstNonNull(billCycleDay, 0);
+        return Objects.firstNonNull(billCycleDay, DEFAULT_BCD_VALUE);
     }
 
     @Override
     public UUID getPaymentMethodId() {
+        // Null if non specified
         return paymentMethodId;
     }
 
     @Override
     public DateTimeZone getTimeZone() {
-        return timeZone;
+        return Objects.firstNonNull(timeZone, DEFAULT_TIMEZONE_VALUE);
     }
 
     @Override
     public String getLocale() {
-        return Strings.nullToEmpty(locale);
+        return Objects.firstNonNull(locale, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getAddress1() {
-        return Strings.nullToEmpty(address1);
+        return Objects.firstNonNull((address1, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getAddress2() {
-        return Strings.nullToEmpty(address2);
+        return Objects.firstNonNull(address2, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getCompanyName() {
-        return Strings.nullToEmpty(companyName);
+        return Objects.firstNonNull(companyName, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getCity() {
-        return Strings.nullToEmpty(city);
+        return Objects.firstNonNull(city, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getStateOrProvince() {
-        return Strings.nullToEmpty(stateOrProvince);
+        return Objects.firstNonNull(stateOrProvince, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getPostalCode() {
-        return Strings.nullToEmpty(postalCode);
+        return Objects.firstNonNull(postalCode, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public String getCountry() {
-        return Strings.nullToEmpty(country);
+        return Objects.firstNonNull(country, DEFAULT_STRING_VALUE);
     }
 
     @Override
     public Boolean isMigrated() {
-        return Objects.firstNonNull(this.isMigrated, true);
+        return Objects.firstNonNull(this.isMigrated, DEFAULT_MIGRATED_VALUE);
     }
 
     @Override
     public Boolean isNotifiedForInvoices() {
-        return Objects.firstNonNull(isNotifiedForInvoices, false);
+        return Objects.firstNonNull(isNotifiedForInvoices, DEFAULT_NOTIFIED_FOR_INVOICES_VALUE);
     }
 
     @Override
     public String getPhone() {
-        return Strings.nullToEmpty(phone);
+        return Objects.firstNonNull(phone, DEFAULT_STRING_VALUE);
     }
 
     @Override