001// GENERATED by ShapeGenerator from scripts/sqllr/shape/shape-spec.tsv (plan 09, slice 1b). Do not edit.
002package gudusoft.gsqlparser.lineage.v2.shape;
003
004/** Mirror of {@code gudusoft.gsqlparser.nodes.TExpression}. */
005public class TExpression extends TParseTreeNode {
006    private final Object vgetCaseExpression;
007    private final Object vgetConstantOperand;
008    private final Object vgetExceptReplaceClause;
009    private final Object vgetExpressionType;
010    private final Object vgetFunctionCall;
011    private final Object vgetLeftOperand;
012    private final Object vgetObjectOperand;
013    private final Object vgetRightOperand;
014    private final Object vgetSubQuery;
015
016    TExpression(Shape shape, int handle, Object[][] v) {
017        super(shape, handle, v);
018        Object[] mine = v[1];
019        this.vgetCaseExpression = mine[0];
020        this.vgetConstantOperand = mine[1];
021        this.vgetExceptReplaceClause = mine[2];
022        this.vgetExpressionType = mine[3];
023        this.vgetFunctionCall = mine[4];
024        this.vgetLeftOperand = mine[5];
025        this.vgetObjectOperand = mine[6];
026        this.vgetRightOperand = mine[7];
027        this.vgetSubQuery = mine[8];
028    }
029
030    public TCaseExpression getCaseExpression() {
031        return this.<TCaseExpression>slot(vgetCaseExpression);
032    }
033
034    public TConstant getConstantOperand() {
035        return this.<TConstant>slot(vgetConstantOperand);
036    }
037
038    public TExceptReplaceClause getExceptReplaceClause() {
039        return this.<TExceptReplaceClause>slot(vgetExceptReplaceClause);
040    }
041
042    public gudusoft.gsqlparser.EExpressionType getExpressionType() {
043        return this.<gudusoft.gsqlparser.EExpressionType>slot(vgetExpressionType);
044    }
045
046    public TFunctionCall getFunctionCall() {
047        return this.<TFunctionCall>slot(vgetFunctionCall);
048    }
049
050    public TExpression getLeftOperand() {
051        return this.<TExpression>slot(vgetLeftOperand);
052    }
053
054    public TObjectName getObjectOperand() {
055        return this.<TObjectName>slot(vgetObjectOperand);
056    }
057
058    public TExpression getRightOperand() {
059        return this.<TExpression>slot(vgetRightOperand);
060    }
061
062    public TSelectSqlStatement getSubQuery() {
063        return this.<TSelectSqlStatement>slot(vgetSubQuery);
064    }
065
066    /** The text the live node rendered, taken after the analysis finished. */
067    @Override
068    public String toString() {
069        return shape.render(handle);
070    }
071}