From bc2cedc83f6353259ea1364f98ce60bf11d7ecf4 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Thu, 23 Oct 2014 12:06:14 +0000
Subject: [PATCH] #2021 feature - Upgtaded Jackson annotations version and added request data hash management

---
 securis/src/main/java/net/curisit/securis/db/License.java |   38 ++++++++++++++++++++++++++++++--------
 1 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/db/License.java b/securis/src/main/java/net/curisit/securis/db/License.java
index 239797c..e8ce296 100644
--- a/securis/src/main/java/net/curisit/securis/db/License.java
+++ b/securis/src/main/java/net/curisit/securis/db/License.java
@@ -8,6 +8,7 @@
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.EntityManager;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
@@ -17,14 +18,15 @@
 import javax.persistence.NamedQuery;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
+import javax.persistence.TypedQuery;
 
 import net.curisit.integrity.commons.Utils;
 
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 /**
  * Entity implementation class for Entity: license
@@ -36,7 +38,8 @@
 @Table(name = "license")
 @JsonIgnoreProperties(ignoreUnknown = true)
 @NamedQueries({
-    @NamedQuery(name = "list-licenses-by-pack", query = "SELECT l FROM License l where l.pack.id = :packId")
+        @NamedQuery(name = "list-licenses-by-pack", query = "SELECT l FROM License l where l.pack.id = :packId"),
+        @NamedQuery(name = "list-active-licenses-by-req-data", query = "SELECT l FROM License l where l.reqDataHash = :hash and l.status in ('AC', 'PA')")
 })
 public class License implements Serializable {
 
@@ -74,6 +77,10 @@
     @Column(name = "request_data")
     @JsonProperty("request_data")
     private String requestData;
+
+    @Column(name = "request_data_hash")
+    @JsonIgnore
+    private String reqDataHash;
 
     @Column(name = "license_data")
     @JsonProperty("license_data")
@@ -286,6 +293,7 @@
         public static final int DOWNLOAD = 5;
         public static final int CANCEL = 6;
         public static final int DELETE = 7;
+        public static final int BLOCK = 8;
     }
 
     public static class Status {
@@ -296,8 +304,8 @@
                 Action.SEND, Arrays.asList(LicenseStatus.ACTIVE, LicenseStatus.PRE_ACTIVE), //
                 Action.DOWNLOAD, Arrays.asList(LicenseStatus.ACTIVE, LicenseStatus.PRE_ACTIVE), //
                 Action.CANCEL, Arrays.asList(LicenseStatus.ACTIVE, LicenseStatus.PRE_ACTIVE, LicenseStatus.REQUESTED, LicenseStatus.EXPIRED), //
-                Action.DELETE, Arrays.asList(LicenseStatus.CANCELLED, LicenseStatus.CREATED) //
-
+                Action.DELETE, Arrays.asList(LicenseStatus.CANCELLED, LicenseStatus.CREATED), //
+                Action.BLOCK, Arrays.asList(LicenseStatus.CANCELLED) //
                 );
 
         /**
@@ -314,4 +322,18 @@
             return validStatuses != null && validStatuses.contains(currentStatus);
         }
     }
+
+    public License findLicenseByRequestData(String requestData, EntityManager em) {
+        TypedQuery<License> query = em.createNamedQuery("list-active-licenses-by-req-data", License.class);
+        query.setParameter("hash", BlockedRequest.generateHash(requestData));
+        return null;
+    }
+
+    public String getReqDataHash() {
+        return reqDataHash;
+    }
+
+    public void setReqDataHash(String reqDataHash) {
+        this.reqDataHash = reqDataHash;
+    }
 }

--
Gitblit v1.3.2