killbill-memoizeit

payment: fix audits in AuditedPaymentDao Whenever a history

8/11/2012 2:45:20 PM

Details

diff --git a/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java b/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java
index cad796e..80676f3 100644
--- a/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java
+++ b/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java
@@ -96,7 +96,7 @@ public class AuditedPaymentDao implements PaymentDao {
         transactional.insertHistoryFromTransaction(history, context);
 
         final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-        final EntityAudit audit = new EntityAudit(TableName.PAYMENTS, historyRecordId, ChangeType.INSERT);
+        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_HISTORY, historyRecordId, ChangeType.INSERT);
         transactional.insertAuditFromTransaction(audit, context);
         return savedPayment;
     }
@@ -108,7 +108,7 @@ public class AuditedPaymentDao implements PaymentDao {
         final EntityHistory<PaymentAttemptModelDao> history = new EntityHistory<PaymentAttemptModelDao>(savedAttempt.getId(), recordId, savedAttempt, ChangeType.INSERT);
         transactional.insertHistoryFromTransaction(history, context);
         final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_ATTEMPTS, historyRecordId, ChangeType.INSERT);
+        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_ATTEMPT_HISTORY, historyRecordId, ChangeType.INSERT);
         transactional.insertAuditFromTransaction(audit, context);
         return savedAttempt;
     }
@@ -153,7 +153,7 @@ public class AuditedPaymentDao implements PaymentDao {
         final EntityHistory<PaymentModelDao> history = new EntityHistory<PaymentModelDao>(savedPayment.getId(), recordId, savedPayment, ChangeType.UPDATE);
         transactional.insertHistoryFromTransaction(history, context);
         final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-        final EntityAudit audit = new EntityAudit(TableName.PAYMENTS, historyRecordId, ChangeType.UPDATE);
+        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_HISTORY, historyRecordId, ChangeType.UPDATE);
         transactional.insertAuditFromTransaction(audit, context);
     }
 
@@ -164,7 +164,7 @@ public class AuditedPaymentDao implements PaymentDao {
         final EntityHistory<PaymentModelDao> history = new EntityHistory<PaymentModelDao>(savedPayment.getId(), recordId, savedPayment, ChangeType.UPDATE);
         transactional.insertHistoryFromTransaction(history, context);
         final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-        final EntityAudit audit = new EntityAudit(TableName.PAYMENTS, historyRecordId, ChangeType.UPDATE);
+        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_HISTORY, historyRecordId, ChangeType.UPDATE);
         transactional.insertAuditFromTransaction(audit, context);
     }
 
@@ -175,7 +175,7 @@ public class AuditedPaymentDao implements PaymentDao {
         final EntityHistory<PaymentAttemptModelDao> history = new EntityHistory<PaymentAttemptModelDao>(savedAttempt.getId(), recordId, savedAttempt, ChangeType.UPDATE);
         transactional.insertHistoryFromTransaction(history, context);
         final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_ATTEMPTS, historyRecordId, ChangeType.UPDATE);
+        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_ATTEMPT_HISTORY, historyRecordId, ChangeType.UPDATE);
         transactional.insertAuditFromTransaction(audit, context);
     }
 
@@ -197,7 +197,7 @@ public class AuditedPaymentDao implements PaymentDao {
         final EntityHistory<PaymentMethodModelDao> history = new EntityHistory<PaymentMethodModelDao>(savedPaymentMethod.getId(), recordId, savedPaymentMethod, ChangeType.INSERT);
         transactional.insertHistoryFromTransaction(history, context);
         final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_METHODS, historyRecordId, ChangeType.INSERT);
+        final EntityAudit audit = new EntityAudit(TableName.PAYMENT_METHOD_HISTORY, historyRecordId, ChangeType.INSERT);
         transactional.insertAuditFromTransaction(audit, context);
         return savedPaymentMethod;
     }
@@ -262,7 +262,7 @@ public class AuditedPaymentDao implements PaymentDao {
                 final EntityHistory<RefundModelDao> history = new EntityHistory<RefundModelDao>(savedRefund.getId(), recordId, savedRefund, ChangeType.INSERT);
                 transactional.insertHistoryFromTransaction(history, context);
                 final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-                final EntityAudit audit = new EntityAudit(TableName.REFUNDS, historyRecordId, ChangeType.INSERT);
+                final EntityAudit audit = new EntityAudit(TableName.REFUND_HISTORY, historyRecordId, ChangeType.INSERT);
                 transactional.insertAuditFromTransaction(audit, context);
                 return savedRefund;
             }
@@ -285,7 +285,7 @@ public class AuditedPaymentDao implements PaymentDao {
                 final EntityHistory<RefundModelDao> history = new EntityHistory<RefundModelDao>(savedRefund.getId(), recordId, savedRefund, ChangeType.UPDATE);
                 transactional.insertHistoryFromTransaction(history, context);
                 final Long historyRecordId = transactional.getHistoryRecordId(recordId);
-                final EntityAudit audit = new EntityAudit(TableName.REFUNDS, historyRecordId, ChangeType.UPDATE);
+                final EntityAudit audit = new EntityAudit(TableName.REFUND_HISTORY, historyRecordId, ChangeType.UPDATE);
                 transactional.insertAuditFromTransaction(audit, context);
                 return null;
             }
diff --git a/util/src/main/java/com/ning/billing/util/dao/TableName.java b/util/src/main/java/com/ning/billing/util/dao/TableName.java
index 4dedcd0..7aec216 100644
--- a/util/src/main/java/com/ning/billing/util/dao/TableName.java
+++ b/util/src/main/java/com/ning/billing/util/dao/TableName.java
@@ -19,30 +19,50 @@ package com.ning.billing.util.dao;
 import javax.annotation.Nullable;
 
 public enum TableName {
-    ACCOUNT("accounts", ObjectType.ACCOUNT),
-    ACCOUNT_HISTORY("account_history", null),
-    ACCOUNT_EMAIL_HISTORY("account_email_history", ObjectType.ACCOUNT_EMAIL),
+    ACCOUNT_HISTORY("account_history"),
+    ACCOUNT("accounts", ObjectType.ACCOUNT, ACCOUNT_HISTORY),
+    ACCOUNT_EMAIL_HISTORY("account_email_history"),
+    ACCOUNT_EMAIL("account_emails", ObjectType.ACCOUNT_EMAIL, ACCOUNT_EMAIL_HISTORY),
     BUNDLES("bundles", ObjectType.BUNDLE),
-    CUSTOM_FIELD_HISTORY("custom_field_history", null),
+    CUSTOM_FIELD_HISTORY("custom_field_history"),
+    CUSTOM_FIELD("custom_fields", CUSTOM_FIELD_HISTORY),
     INVOICE_ITEMS("invoice_items", ObjectType.INVOICE_ITEM),
     INVOICE_PAYMENTS("invoice_payments", ObjectType.INVOICE_PAYMENT),
     INVOICES("invoices", ObjectType.INVOICE),
-    PAYMENT_ATTEMPTS("payment_attempts", null),
-    PAYMENT_HISTORY("payment_history", null),
-    PAYMENTS("payments", ObjectType.PAYMENT),
-    PAYMENT_METHODS("payment_methods", ObjectType.PAYMENT_METHOD),
+    PAYMENT_ATTEMPT_HISTORY("payment_attempt_history"),
+    PAYMENT_ATTEMPTS("payment_attempts", PAYMENT_ATTEMPT_HISTORY),
+    PAYMENT_HISTORY("payment_history"),
+    PAYMENTS("payments", ObjectType.PAYMENT, PAYMENT_HISTORY),
+    PAYMENT_METHOD_HISTORY("payment_method_history"),
+    PAYMENT_METHODS("payment_methods", ObjectType.PAYMENT_METHOD, PAYMENT_METHOD_HISTORY),
     SUBSCRIPTIONS("subscriptions", ObjectType.SUBSCRIPTION),
-    SUBSCRIPTION_EVENTS("subscription_events", null),
-    REFUNDS("refunds", ObjectType.REFUND),
+    SUBSCRIPTION_EVENTS("subscription_events"),
+    REFUND_HISTORY("refund_history"),
+    REFUNDS("refunds", ObjectType.REFUND, REFUND_HISTORY),
     TAG_DEFINITIONS("tag_definitions", ObjectType.TAG_DEFINITION),
-    TAG_HISTORY("tag_history", null);
+    TAG_HISTORY("tag_history"),
+    TAG("tags", TAG_HISTORY);
 
     private final String tableName;
     private final ObjectType objectType;
+    private final TableName historyTableName;
 
-    TableName(final String tableName, @Nullable final ObjectType objectType) {
+    TableName(final String tableName, @Nullable final ObjectType objectType, @Nullable final TableName historyTableName) {
         this.tableName = tableName;
         this.objectType = objectType;
+        this.historyTableName = historyTableName;
+    }
+
+    TableName(final String tableName, @Nullable final ObjectType objectType) {
+        this(tableName, objectType, null);
+    }
+
+    TableName(final String tableName, @Nullable final TableName historyTableName) {
+        this(tableName, null, historyTableName);
+    }
+
+    TableName(final String tableName) {
+        this(tableName, null, null);
     }
 
     public String getTableName() {
@@ -52,4 +72,12 @@ public enum TableName {
     public ObjectType getObjectType() {
         return objectType;
     }
+
+    public TableName getHistoryTableName() {
+        return historyTableName;
+    }
+
+    public boolean hasHistoryTable() {
+        return historyTableName != null;
+    }
 }