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);
}
}
}