- count.set(0);
- for(CSV approveCSV : csvList) {
- TimeTaken tt = trans.start("Processing %s's UserRoles",Trans.SUB,approveCSV.name());
- try {
- approveCSV.visit(row -> {
- switch(row.get(0)) {
- case UserRole.APPROVE_UR:
- UserRoleDAO.Data urdd = UserRole.row(row);
- // Create an Approval
- ApprovalSet uras = new URApprovalSet(noAvg, now, dataview, () -> {
- return urdd;
- });
- Result<Void> rw = uras.write(noAvg);
- if(rw.isOK()) {
- Pending p = new Pending();
- Pending mp = mpending.get(urdd.user);
- if(mp==null) {
- mpending.put(urdd.user, p);
- } else {
- mp.inc(p);
- }
- count.set(count.get()+1);
- } else {
- trans.error().log(rw.errorString());
- }
- break;
- }
- });
- dataview.flush();
- } catch (IOException | CadiException e) {
- e.printStackTrace();
- // .... but continue with next row
- } finally {
- tt.done();
- }
+ Holder<Integer> count = new Holder<>(0);
+ for(CSV neeedApproveCSV : csvList) {
+ TimeTaken tt = trans.start("Processing %s's UserRoles",Trans.SUB,neeedApproveCSV.name());
+ try {
+ neeedApproveCSV.visit(row -> {
+ switch(row.get(0)) {
+ case UserRole.APPROVE_UR:
+ UserRoleDAO.Data urdd = UserRole.row(row);
+ // Create an Approval
+ ApprovalSet uras = new URApprovalSet(noAvg, now, dataview, () -> {
+ return urdd;
+ });
+ Result<Void> rw = uras.write(noAvg);
+ if(rw.isOK()) {
+ Set<String> approvers = uras.approvers();
+ if(approvers.isEmpty()) {
+ trans.error().printf("No Approvers found for %s-%s (probably no owner)",urdd.user,urdd.role);
+ } else {
+ for(String approver : approvers) {
+ Pending mp = mpending.get(approver);
+ if(mp==null) {
+ mpending.put(approver, Pending.create());
+ } else {
+ mp.inc(p); // FYI, unlikely
+ }
+ }
+ count.set(count.get()+1);
+ }
+ } else {
+ trans.error().log(rw.errorString());
+ }
+ break;
+ }
+ });
+ dataview.flush();
+ } catch (IOException | CadiException e) {
+ e.printStackTrace();
+ // .... but continue with next row
+ } finally {
+ tt.done();
+ }