001package gudusoft.gsqlparser.ir.logical.rel;
002
003import gudusoft.gsqlparser.ir.common.SourceAnchor;
004import gudusoft.gsqlparser.ir.logical.*;
005
006import java.util.Collections;
007import java.util.List;
008
009/**
010 * WHERE / HAVING filter.
011 */
012public final class Filter extends RelNode {
013    private final RelNode input;
014    private final RexNode condition;
015
016    public Filter(RelNode input, RexNode condition, SourceAnchor anchor) {
017        super(RelNodeKind.FILTER, anchor);
018        this.input = input;
019        this.condition = condition;
020    }
021
022    public RelNode getInput() { return input; }
023    public RexNode getCondition() { return condition; }
024
025    @Override
026    public List<RelNode> getInputs() { return Collections.singletonList(input); }
027
028    @Override
029    public <R> R accept(RelNodeVisitor<R> visitor) { return visitor.visitFilter(this); }
030}