protected JoinOrFilterNode generateNewJoinOrFilterNode(JoinOrFilterNode formerNode, ImmutableExpression newExpression) { if (formerNode instanceof FilterNode) { return ((FilterNode)formerNode).changeFilterCondition(newExpression); } else if (formerNode instanceof JoinLikeNode) { return ((JoinLikeNode)formerNode).changeOptionalFilterCondition(Optional.of(newExpression)); } else { throw new RuntimeException("This type of query node is not supported: " + formerNode.getClass()); } } }
originalFilterNode.getFilterCondition(), newEqualities).get(); FilterNode newFilterNode = originalFilterNode.changeFilterCondition(newFilteringCondition); treeComponent.replaceNode(originalFilterNode, newFilterNode); return newFocusNode;