public void apply()

in tools/linter/src/main/java/com/google/cloud/verticals/foundations/dataharmonization/tools/linter/rules/SpacingConditional.java [62:96]


  public void apply(BaseTreeNode node) {
    List<BaseTreeNode> children = node.asInternal().getChildren();
    // Remove any existing spaces from after 'if' and before and after 'then' and 'else'.
    // Also remove any spaces from the start or end of the source expression
    for (int i = children.size() - 1; i >= 0; i--) {
      BaseTreeNode child = children.get(i);
      if (child.isTerminal()
          && child.asTerminal().getValue().equals(IF)
          && children.size() > i + 1) {
        removeSpacesAfter(children, i);
        removeSpacesExprSourceContext(children, i);
      }
      if (child.isTerminal()
          && (child.asTerminal().getValue().equals(THEN)
              || child.asTerminal().getValue().equals(ELSE))) {
        removeSpacesAfter(children, i);
        removeSpacesBefore(children, i);
      }
    }
    // Add single spaces back in.
    for (int i = children.size() - 1; i >= 0; i--) {
      BaseTreeNode child = children.get(i);
      if (child.isTerminal()
          && child.asTerminal().getValue().equals(IF)
          && children.size() > i + 1) {
        insertNewSpaceNode(children, i + 1, node);
      }
      if (child.isTerminal()
          && (child.asTerminal().getValue().equals(THEN)
              || child.asTerminal().getValue().equals(ELSE))) {
        insertNewSpaceNode(children, i + 1, node);
        insertNewSpaceNode(children, i, node);
      }
    }
  }