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}