Merge "Future.java - sonar fixes"
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / Future.java
index 13f8193..74c3411 100644 (file)
@@ -23,6 +23,7 @@
 
 package org.onap.aaf.auth.batch.helpers;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Date;
@@ -32,6 +33,7 @@ import java.util.TreeMap;
 import java.util.UUID;
 
 import org.onap.aaf.auth.dao.cass.FutureDAO;
+import org.onap.aaf.auth.dao.cass.UserRoleDAO;
 import org.onap.aaf.auth.env.AuthzTrans;
 import org.onap.aaf.auth.layer.Result;
 import org.onap.aaf.cadi.util.CSV;
@@ -90,7 +92,19 @@ public class Future implements CacheChange.Data, Comparable<Future> {
         fdd.start = start;
         fdd.expires = expires;
         fdd.construct = construct;
-        role = Approval.roleFromMemo(memo);
+        String role = null;
+        if ("user_role".equals(target)) {
+            UserRoleDAO.Data urdd = new UserRoleDAO.Data();
+            try {
+                urdd.reconstitute(construct);
+                fdd.target_key = urdd.user + '|' + urdd.role;
+                fdd.target_date = urdd.expires;
+                role = urdd.role;
+            } catch (IOException e) {
+                e.printStackTrace(System.err);
+            }
+        }
+       this.role = role;
     }
     
     public final UUID id() {
@@ -114,21 +128,14 @@ public class Future implements CacheChange.Data, Comparable<Future> {
     }
     
     public static void load(Trans trans, Session session, Creator<Future> creator) {
-       load(trans,session,creator, new Visitor<Future>() {
-                       @Override
-                       public void visit(Future f) {
-                           data.put(f.fdd.id,f);
-                           if (f.role==null) {
-                               return;
-                           }
-                           List<Future> lf = byRole.get(f.role);
-                           if (lf==null) {
-                               lf = new ArrayList<>();
-                               byRole.put(f.role,lf);
-                           }
-                           lf.add(f);
-                       }
-               });
+       load(trans,session,creator, f -> {
+            data.put(f.fdd.id,f);
+            if (f.role==null) {
+                return;
+            }
+            List<Future> lf = byRole.computeIfAbsent(f.role, k -> new ArrayList<>());
+            lf.add(f);
+        });
     }