rsanchez
2014-10-23 bc2cedc83f6353259ea1364f98ce60bf11d7ecf4
securis/src/main/java/net/curisit/securis/db/License.java
....@@ -8,6 +8,7 @@
88
99 import javax.persistence.Column;
1010 import javax.persistence.Entity;
11
+import javax.persistence.EntityManager;
1112 import javax.persistence.FetchType;
1213 import javax.persistence.GeneratedValue;
1314 import javax.persistence.Id;
....@@ -17,14 +18,15 @@
1718 import javax.persistence.NamedQuery;
1819 import javax.persistence.OneToMany;
1920 import javax.persistence.Table;
21
+import javax.persistence.TypedQuery;
2022
2123 import net.curisit.integrity.commons.Utils;
2224
23
-import org.codehaus.jackson.annotate.JsonAutoDetect;
24
-import org.codehaus.jackson.annotate.JsonIgnore;
25
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
26
-import org.codehaus.jackson.annotate.JsonProperty;
27
-import org.codehaus.jackson.map.annotate.JsonSerialize;
25
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
26
+import com.fasterxml.jackson.annotation.JsonIgnore;
27
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
28
+import com.fasterxml.jackson.annotation.JsonProperty;
29
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
2830
2931 /**
3032 * Entity implementation class for Entity: license
....@@ -36,7 +38,8 @@
3638 @Table(name = "license")
3739 @JsonIgnoreProperties(ignoreUnknown = true)
3840 @NamedQueries({
39
- @NamedQuery(name = "list-licenses-by-pack", query = "SELECT l FROM License l where l.pack.id = :packId")
41
+ @NamedQuery(name = "list-licenses-by-pack", query = "SELECT l FROM License l where l.pack.id = :packId"),
42
+ @NamedQuery(name = "list-active-licenses-by-req-data", query = "SELECT l FROM License l where l.reqDataHash = :hash and l.status in ('AC', 'PA')")
4043 })
4144 public class License implements Serializable {
4245
....@@ -74,6 +77,10 @@
7477 @Column(name = "request_data")
7578 @JsonProperty("request_data")
7679 private String requestData;
80
+
81
+ @Column(name = "request_data_hash")
82
+ @JsonIgnore
83
+ private String reqDataHash;
7784
7885 @Column(name = "license_data")
7986 @JsonProperty("license_data")
....@@ -286,6 +293,7 @@
286293 public static final int DOWNLOAD = 5;
287294 public static final int CANCEL = 6;
288295 public static final int DELETE = 7;
296
+ public static final int BLOCK = 8;
289297 }
290298
291299 public static class Status {
....@@ -296,8 +304,8 @@
296304 Action.SEND, Arrays.asList(LicenseStatus.ACTIVE, LicenseStatus.PRE_ACTIVE), //
297305 Action.DOWNLOAD, Arrays.asList(LicenseStatus.ACTIVE, LicenseStatus.PRE_ACTIVE), //
298306 Action.CANCEL, Arrays.asList(LicenseStatus.ACTIVE, LicenseStatus.PRE_ACTIVE, LicenseStatus.REQUESTED, LicenseStatus.EXPIRED), //
299
- Action.DELETE, Arrays.asList(LicenseStatus.CANCELLED, LicenseStatus.CREATED) //
300
-
307
+ Action.DELETE, Arrays.asList(LicenseStatus.CANCELLED, LicenseStatus.CREATED), //
308
+ Action.BLOCK, Arrays.asList(LicenseStatus.CANCELLED) //
301309 );
302310
303311 /**
....@@ -314,4 +322,18 @@
314322 return validStatuses != null && validStatuses.contains(currentStatus);
315323 }
316324 }
325
+
326
+ public License findLicenseByRequestData(String requestData, EntityManager em) {
327
+ TypedQuery<License> query = em.createNamedQuery("list-active-licenses-by-req-data", License.class);
328
+ query.setParameter("hash", BlockedRequest.generateHash(requestData));
329
+ return null;
330
+ }
331
+
332
+ public String getReqDataHash() {
333
+ return reqDataHash;
334
+ }
335
+
336
+ public void setReqDataHash(String reqDataHash) {
337
+ this.reqDataHash = reqDataHash;
338
+ }
317339 }