Example #1
0
 @Override
 public void apply(FlowRuleOperations ops) {
   AtomicBoolean thisSuccess = new AtomicBoolean(success);
   ops.stages()
       .forEach(
           stage ->
               stage.forEach(
                   flow -> {
                     if (errorFlow == flow.rule().id().value()) {
                       thisSuccess.set(false);
                     } else {
                       switch (flow.type()) {
                         case ADD:
                         case MODIFY: // TODO is this the right behavior for modify?
                           flows.add(flow.rule());
                           break;
                         case REMOVE:
                           flows.remove(flow.rule());
                           break;
                         default:
                           break;
                       }
                     }
                   }));
   if (thisSuccess.get()) {
     ops.callback().onSuccess(ops);
   } else {
     ops.callback().onError(ops);
   }
 }