killbill-aplcache
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundleData.java 72(+58 -14)
entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/BundleSqlDao.sql.stg 5(+2 -3)
Details
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundle.java b/api/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundle.java
index 61c76ee..479dbf5 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundle.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundle.java
@@ -18,20 +18,14 @@ package com.ning.billing.entitlement.api.user;
import java.util.UUID;
-import org.joda.time.DateTime;
-
import com.ning.billing.junction.api.Blockable;
import com.ning.billing.overdue.OverdueState;
import com.ning.billing.util.entity.Entity;
public interface SubscriptionBundle extends Blockable, Entity {
-
public UUID getAccountId();
- public DateTime getStartDate();
-
public String getKey();
public OverdueState<SubscriptionBundle> getOverdueState();
-
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundleData.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundleData.java
index be076ba..ede9ec0 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundleData.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionBundleData.java
@@ -16,6 +16,7 @@
package com.ning.billing.entitlement.api.user;
+import javax.annotation.Nullable;
import java.util.UUID;
import org.joda.time.DateTime;
@@ -24,28 +25,24 @@ import com.ning.billing.junction.api.BlockingState;
import com.ning.billing.overdue.OverdueState;
public class SubscriptionBundleData implements SubscriptionBundle {
-
private final UUID id;
private final String key;
private final UUID accountId;
- private final DateTime startDate;
private final DateTime lastSysTimeUpdate;
private final OverdueState<SubscriptionBundle> overdueState;
public SubscriptionBundleData(final String name, final UUID accountId, final DateTime startDate) {
- this(UUID.randomUUID(), name, accountId, startDate, startDate);
+ this(UUID.randomUUID(), name, accountId, startDate);
}
- public SubscriptionBundleData(final UUID id, final String key, final UUID accountId, final DateTime startDate, final DateTime lastSysUpdate) {
- this(id, key, accountId, startDate, lastSysUpdate, null);
+ public SubscriptionBundleData(final UUID id, final String key, final UUID accountId, final DateTime lastSysUpdate) {
+ this(id, key, accountId, lastSysUpdate, null);
}
- public SubscriptionBundleData(final UUID id, final String key, final UUID accountId, final DateTime startDate, final DateTime lastSysUpdate, final OverdueState<SubscriptionBundle> overdueState) {
- super();
+ public SubscriptionBundleData(final UUID id, final String key, final UUID accountId, final DateTime lastSysUpdate, @Nullable final OverdueState<SubscriptionBundle> overdueState) {
this.id = id;
this.key = key;
this.accountId = accountId;
- this.startDate = startDate;
this.lastSysTimeUpdate = lastSysUpdate;
this.overdueState = overdueState;
}
@@ -65,12 +62,6 @@ public class SubscriptionBundleData implements SubscriptionBundle {
return accountId;
}
- // STEPH do we need it ? and should we return that and when is that populated/updated?
- @Override
- public DateTime getStartDate() {
- return startDate;
- }
-
public DateTime getLastSysUpdateTime() {
return lastSysTimeUpdate;
}
@@ -84,4 +75,57 @@ public class SubscriptionBundleData implements SubscriptionBundle {
public BlockingState getBlockingState() {
throw new UnsupportedOperationException();
}
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("SubscriptionBundleData");
+ sb.append("{accountId=").append(accountId);
+ sb.append(", id=").append(id);
+ sb.append(", key='").append(key).append('\'');
+ sb.append(", lastSysTimeUpdate=").append(lastSysTimeUpdate);
+ sb.append(", overdueState=").append(overdueState);
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ final SubscriptionBundleData that = (SubscriptionBundleData) o;
+
+ if (accountId != null ? !accountId.equals(that.accountId) : that.accountId != null) {
+ return false;
+ }
+ if (id != null ? !id.equals(that.id) : that.id != null) {
+ return false;
+ }
+ if (key != null ? !key.equals(that.key) : that.key != null) {
+ return false;
+ }
+ if (lastSysTimeUpdate != null ? !lastSysTimeUpdate.equals(that.lastSysTimeUpdate) : that.lastSysTimeUpdate != null) {
+ return false;
+ }
+ if (overdueState != null ? !overdueState.equals(that.overdueState) : that.overdueState != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = id != null ? id.hashCode() : 0;
+ result = 31 * result + (key != null ? key.hashCode() : 0);
+ result = 31 * result + (accountId != null ? accountId.hashCode() : 0);
+ result = 31 * result + (lastSysTimeUpdate != null ? lastSysTimeUpdate.hashCode() : 0);
+ result = 31 * result + (overdueState != null ? overdueState.hashCode() : 0);
+ return result;
+ }
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/BundleSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/BundleSqlDao.java
index bd27e4e..b80a18f 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/BundleSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/BundleSqlDao.java
@@ -29,7 +29,7 @@ import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.Binder;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
-import org.skife.jdbi.v2.sqlobject.customizers.Mapper;
+import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
import org.skife.jdbi.v2.sqlobject.mixins.CloseMe;
import org.skife.jdbi.v2.sqlobject.mixins.Transactional;
import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
@@ -46,9 +46,9 @@ import com.ning.billing.util.dao.MapperBase;
import com.ning.billing.util.entity.dao.EntitySqlDao;
@ExternalizedSqlViaStringTemplate3()
+@RegisterMapper(BundleSqlDao.ISubscriptionBundleSqlMapper.class)
public interface BundleSqlDao extends Transactional<BundleSqlDao>, EntitySqlDao<SubscriptionBundle>,
AuditSqlDao, CloseMe, Transmogrifier {
-
@SqlUpdate
public void insertBundle(@Bind(binder = SubscriptionBundleBinder.class) SubscriptionBundleData bundle,
@CallContextBinder final CallContext context);
@@ -57,22 +57,18 @@ public interface BundleSqlDao extends Transactional<BundleSqlDao>, EntitySqlDao<
public void updateBundleLastSysTime(@Bind("id") String id, @Bind("lastSysUpdateDate") Date lastSysUpdate);
@SqlQuery
- @Mapper(ISubscriptionBundleSqlMapper.class)
public SubscriptionBundle getBundleFromId(@Bind("id") String id);
@SqlQuery
- @Mapper(ISubscriptionBundleSqlMapper.class)
public SubscriptionBundle getBundleFromKey(@Bind("externalKey") String externalKey);
@SqlQuery
- @Mapper(ISubscriptionBundleSqlMapper.class)
public List<SubscriptionBundle> getBundleFromAccount(@Bind("accountId") String accountId);
public static class SubscriptionBundleBinder extends BinderBase implements Binder<Bind, SubscriptionBundleData> {
@Override
public void bind(@SuppressWarnings("rawtypes") final SQLStatement stmt, final Bind bind, final SubscriptionBundleData bundle) {
stmt.bind("id", bundle.getId().toString());
- stmt.bind("startDate", getDate(bundle.getStartDate()));
stmt.bind("externalKey", bundle.getKey());
stmt.bind("accountId", bundle.getAccountId().toString());
stmt.bind("lastSysUpdateDate", getDate(bundle.getLastSysUpdateTime()));
@@ -85,9 +81,8 @@ public interface BundleSqlDao extends Transactional<BundleSqlDao>, EntitySqlDao<
final UUID id = UUID.fromString(r.getString("id"));
final String key = r.getString("external_key");
final UUID accountId = UUID.fromString(r.getString("account_id"));
- final DateTime startDate = getDate(r, "start_date");
final DateTime lastSysUpdateDate = getDate(r, "last_sys_update_date");
- return new SubscriptionBundleData(id, key, accountId, startDate, lastSysUpdateDate);
+ return new SubscriptionBundleData(id, key, accountId, lastSysUpdateDate);
}
}
}
diff --git a/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql b/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql
index ae45518..66628e8 100644
--- a/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql
+++ b/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql
@@ -51,7 +51,6 @@ DROP TABLE IF EXISTS bundles;
CREATE TABLE bundles (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
id char(36) NOT NULL,
- start_date datetime, /*NOT NULL*/
external_key varchar(64) NOT NULL,
account_id char(36) NOT NULL,
last_sys_update_date datetime,
diff --git a/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/BundleSqlDao.sql.stg b/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/BundleSqlDao.sql.stg
index 367330f..1ecf151 100644
--- a/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/BundleSqlDao.sql.stg
+++ b/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/BundleSqlDao.sql.stg
@@ -2,7 +2,6 @@ group BundleSqlDao;
fields(prefix) ::= <<
<prefix>id,
- <prefix>start_date,
<prefix>external_key,
<prefix>account_id,
<prefix>last_sys_update_date
@@ -10,7 +9,7 @@ fields(prefix) ::= <<
insertBundle() ::= <<
insert into bundles (<fields()>)
- values (:id, :startDate, :externalKey, :accountId, :lastSysUpdateDate);
+ values (:id, :externalKey, :accountId, :lastSysUpdateDate);
>>
updateBundleLastSysTime() ::= <<
@@ -65,4 +64,4 @@ auditFields(prefix) ::= <<
insertAuditFromTransaction() ::= <<
INSERT INTO audit_log(<auditFields()>)
VALUES(:tableName, :recordId, :changeType, :createdDate, :userName, :reasonCode, :comment, :userToken);
->>
\ No newline at end of file
+>>
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java
index 27727e7..2a26425 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java
@@ -18,8 +18,6 @@ package com.ning.billing.junction.plumbing.api;
import java.util.UUID;
-import org.joda.time.DateTime;
-
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.junction.api.BlockingApi;
import com.ning.billing.junction.api.BlockingState;
@@ -44,10 +42,6 @@ public class BlockingSubscriptionBundle implements SubscriptionBundle {
return subscriptionBundle.getId();
}
- public DateTime getStartDate() {
- return subscriptionBundle.getStartDate();
- }
-
public String getKey() {
return subscriptionBundle.getKey();
}
@@ -64,4 +58,46 @@ public class BlockingSubscriptionBundle implements SubscriptionBundle {
return blockingState;
}
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("BlockingSubscriptionBundle");
+ sb.append("{blockingApi=").append(blockingApi);
+ sb.append(", subscriptionBundle=").append(subscriptionBundle);
+ sb.append(", blockingState=").append(blockingState);
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ final BlockingSubscriptionBundle that = (BlockingSubscriptionBundle) o;
+
+ if (blockingApi != null ? !blockingApi.equals(that.blockingApi) : that.blockingApi != null) {
+ return false;
+ }
+ if (blockingState != null ? !blockingState.equals(that.blockingState) : that.blockingState != null) {
+ return false;
+ }
+ if (subscriptionBundle != null ? !subscriptionBundle.equals(that.subscriptionBundle) : that.subscriptionBundle != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = subscriptionBundle != null ? subscriptionBundle.hashCode() : 0;
+ result = 31 * result + (blockingApi != null ? blockingApi.hashCode() : 0);
+ result = 31 * result + (blockingState != null ? blockingState.hashCode() : 0);
+ return result;
+ }
}
diff --git a/util/src/test/java/com/ning/billing/mock/api/MockEntitlementUserApi.java b/util/src/test/java/com/ning/billing/mock/api/MockEntitlementUserApi.java
index d625137..60da96b 100644
--- a/util/src/test/java/com/ning/billing/mock/api/MockEntitlementUserApi.java
+++ b/util/src/test/java/com/ning/billing/mock/api/MockEntitlementUserApi.java
@@ -61,11 +61,6 @@ public class MockEntitlementUserApi implements EntitlementUserApi {
}
@Override
- public DateTime getStartDate() {
- throw new UnsupportedOperationException();
- }
-
- @Override
public String getKey() {
return key;
}