001package gudusoft.gsqlparser.nodes.powerquery;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.nodes.TParseTreeNode;
005import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
006
007/**
008 * {@code Value.NativeQuery(source, "SELECT ...")} call recognised as a
009 * lineage-bearing step.
010 *
011 * <p>The SQL text has already been unescaped from M form (e.g. {@code #(lf)}
012 * resolved to newline).  The inner vendor is inferred by walking back along
013 * the step graph to a {@link TPowerQueryConnectorCall} root; when inference
014 * fails {@link #inferredInnerVendor} stays {@code null} and the sidecar/user
015 * must supply the vendor override.
016 */
017public class TPowerQueryNativeQuery extends TParseTreeNode {
018
019    private String sourceStepName;
020    private String decodedSql;
021    private String rawSqlLiteral;
022    private EDbVendor inferredInnerVendor;
023
024    public String getSourceStepName() {
025        return sourceStepName;
026    }
027
028    public void setSourceStepName(String sourceStepName) {
029        this.sourceStepName = sourceStepName;
030    }
031
032    public String getDecodedSql() {
033        return decodedSql;
034    }
035
036    public void setDecodedSql(String decodedSql) {
037        this.decodedSql = decodedSql;
038    }
039
040    public String getRawSqlLiteral() {
041        return rawSqlLiteral;
042    }
043
044    public void setRawSqlLiteral(String rawSqlLiteral) {
045        this.rawSqlLiteral = rawSqlLiteral;
046    }
047
048    public EDbVendor getInferredInnerVendor() {
049        return inferredInnerVendor;
050    }
051
052    public void setInferredInnerVendor(EDbVendor inferredInnerVendor) {
053        this.inferredInnerVendor = inferredInnerVendor;
054    }
055
056    @Override
057    public void accept(TParseTreeVisitor v) {
058        v.preVisit(this);
059        v.postVisit(this);
060    }
061
062    @Override
063    public void acceptChildren(TParseTreeVisitor v) {
064        v.preVisit(this);
065        v.postVisit(this);
066    }
067}