code: @Override
     public void perform(Rewrite event, EvaluationContext context)
     {
        /*
         * Highly optimized loop - for performance reasons. Think before you change this!
         */
        List<Rule> rules = config.getRules();
  
        Rule rule = null;
        final EvaluationContextImpl subContext = new EvaluationContextImpl();
        for (int i = 0; i < rules.size(); i++)
        {
           rule = rules.get(i);
           event.getEvaluatedRules().add(rule);
  
           subContext.clear();
           subContext.put(ParameterStore.class, context.get(ParameterStore.class));
           ParameterValueStore values = (ParameterValueStore) context.get(ParameterValueStore.class);
           subContext.put(ParameterValueStore.class, values);
           subContext.setState(RewriteState.EVALUATING);
  
           if (rule.evaluate(event, subContext))
           {
              if (handleBindings(event, subContext, values))
              {
                 subContext.setState(RewriteState.PERFORMING);
  
                 if (log.isDebugEnabled())
                    log.debug("Rule [" + rule + "] matched and will be performed.");
  
                 List<Operation> preOperations = subContext.getPreOperations();
                 for (int k = 0; k < preOperations.size(); k++) {
                    preOperations.get(k).perform(event, subContext);
                 }
  
                 if (event.getFlow().isHandled())
                 {
                    break;
                 }
  
                 rule.perform(event, subContext);
  
                 if (event.getFlow().isHandled())
                 {
                    break;
                 }
  
                 List<Operation> postOperations = subContext.getPostOperations();
                 for (int k = 0; k < postOperations.size(); k++) {
                    postOperations.get(k).perform(event, subContext);
                 }
  
                 if (event.getFlow().isHandled())
                 {
                    break;
                 }
              }
           }
           else
           {
              event.getEvaluatedRules().remove(rule);
           }
        }
     }
docs: /*
  Executors