Example #1
0
  private static EvalNode recursiveAddAuditNode(
      EvalNode parentNode,
      boolean auditPattern,
      boolean auditPatternInstance,
      EvalNode evalNode,
      Map<EvalNode, String> evalNodeExpressions,
      EvalAuditInstanceCount instanceCount) {
    String expressionText = evalNodeExpressions.get(evalNode);
    boolean filterChildNonQuitting =
        parentNode != null && parentNode instanceof EvalNodeFilterChildNonQuitting;
    EvalAuditNode audit =
        new EvalAuditNode(
            auditPattern,
            auditPatternInstance,
            expressionText,
            instanceCount,
            filterChildNonQuitting);
    audit.addChildNode(evalNode);

    List<EvalNode> newChildNodes = new ArrayList<EvalNode>();
    for (EvalNode child : evalNode.getChildNodes()) {
      newChildNodes.add(
          recursiveAddAuditNode(
              evalNode,
              auditPattern,
              auditPatternInstance,
              child,
              evalNodeExpressions,
              instanceCount));
    }

    evalNode.getChildNodes().clear();
    evalNode.addChildNodes(newChildNodes);

    return audit;
  }