Changes from Batch Test
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / approvalsets / ApprovalSet.java
index b7176c2..005397b 100644 (file)
@@ -25,7 +25,9 @@ import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.GregorianCalendar;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 import org.onap.aaf.auth.dao.cass.ApprovalDAO;
@@ -74,23 +76,40 @@ public class ApprovalSet {
        
        public Result<Void> write(AuthzTrans trans) {
                StringBuilder errs = null;
-               Result<FutureDAO.Data> rf = dataview.insert(trans, fdd);
-               if(rf.notOK()) {
-                       errs = new StringBuilder();
-                       errs.append(rf.errorString());
+               if(ladd == null || ladd.isEmpty()) {
+                       errs = new StringBuilder("No Approvers for ");
+                       errs .append(fdd.memo);
                } else {
-                       for(ApprovalDAO.Data add : ladd) {
-                               Result<ApprovalDAO.Data> af = dataview.insert(trans, add);
-                               if(af.notOK()) {
-                                       if(errs==null) {
-                                               errs = new StringBuilder();
-                                       } else {
-                                               errs.append('\n');
+                       Result<FutureDAO.Data> rf = dataview.insert(trans, fdd);
+                       if(rf.notOK()) {
+                               errs = new StringBuilder();
+                               errs.append(rf.errorString());
+                       } else {
+                               for(ApprovalDAO.Data add : ladd) {
+                                       Result<ApprovalDAO.Data> af = dataview.insert(trans, add);
+                                       if(af.notOK()) {
+                                               if(errs==null) {
+                                                       errs = new StringBuilder();
+                                               } else {
+                                                       errs.append('\n');
+                                               }
+                                               errs.append(af.errorString());
                                        }
-                                       errs.append(af.errorString());
                                }
                        }
                }
                return errs==null?Result.ok():Result.err(Result.ERR_Backend,errs.toString());
        }
+
+       public boolean hasApprovals() {
+               return !ladd.isEmpty();
+       }
+       
+       public Set<String> approvers() {
+               Set<String> rv = new HashSet<>();
+               for(ApprovalDAO.Data app : ladd) {
+                       rv.add(app.approver);
+               }
+               return rv;
+       }
 }
\ No newline at end of file