private static ICriterionTreeNode findNode(
      final ICriterionTreeNode node, final Criterion criterion) {
    if (node.getCriterion() == criterion) {
      return node;
    }

    for (final ICriterionTreeNode child : node.getChildren()) {
      final ICriterionTreeNode childNode = findNode(child, criterion);

      if (childNode != null) {
        return childNode;
      }
    }

    return null;
  }
This class provides the basic operations of the expression, which are remove, insert and append
criterion.
java/ui/src/main/java/com/google/security/zynamics/bindiff/gui/dialogs/criteriadialog/expressiontree/ExpressionTreeActionProvider.java