From 973ee9056995d1c9e7a533d9999329a70f0d2b2d Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 15 Oct 2014 07:49:46 +0000
Subject: [PATCH] #2021 config - Added pack and LicenseType Metadata management

---
 securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
index 23eafa8..385a35c 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 import javax.inject.Inject;
 import javax.inject.Provider;
@@ -26,7 +27,9 @@
 import net.curisit.securis.DefaultExceptionHandler;
 import net.curisit.securis.SeCurisException;
 import net.curisit.securis.db.Application;
+import net.curisit.securis.db.ApplicationMetadata;
 import net.curisit.securis.db.LicenseType;
+import net.curisit.securis.db.LicenseTypeMetadata;
 import net.curisit.securis.utils.TokenHelper;
 
 import org.apache.logging.log4j.LogManager;
@@ -123,6 +126,15 @@
 
         lt.setCreationTimestamp(new Date());
         em.persist(lt);
+        Set<LicenseTypeMetadata> newMD = lt.getMetadata(); 
+        
+        if (newMD != null) {
+            for (LicenseTypeMetadata md : newMD) {
+                md.setLicenseType(lt);
+                em.persist(md);
+            }
+        }
+        lt.setMetadata(newMD);
 
         return Response.ok(lt).build();
     }
@@ -155,6 +167,20 @@
         currentlt.setName(lt.getName());
         currentlt.setDescription(lt.getDescription());
         em.persist(currentlt);
+        
+        Set<LicenseTypeMetadata> newMD = lt.getMetadata(); 
+        for (LicenseTypeMetadata currentMd : currentlt.getMetadata()) {
+            if (newMD == null || !newMD.contains(currentMd));
+                em.remove(currentMd);
+        }
+        
+        if (newMD != null) {
+            for (LicenseTypeMetadata md : newMD) {
+                md.setLicenseType(currentlt);
+                em.persist(md);
+            }
+        }
+        currentlt.setMetadata(newMD);
 
         return Response.ok(currentlt).build();
     }

--
Gitblit v1.3.2