001package gudusoft.gsqlparser.ir.logical.rex; 002 003import gudusoft.gsqlparser.ir.common.SourceAnchor; 004import gudusoft.gsqlparser.ir.logical.RexNode; 005import gudusoft.gsqlparser.ir.logical.RexNodeVisitor; 006 007/** 008 * Constant/literal value expression. 009 */ 010public final class RexLiteral extends RexNode { 011 012 public enum LiteralType { 013 STRING, INTEGER, DECIMAL, BOOLEAN, NULL, DATE, TIMESTAMP 014 } 015 016 private final String value; 017 private final LiteralType literalType; 018 019 public RexLiteral(String value, LiteralType literalType, SourceAnchor anchor) { 020 super(RexKind.LITERAL, anchor); 021 this.value = value; 022 this.literalType = literalType; 023 } 024 025 public String getValue() { return value; } 026 public LiteralType getLiteralType() { return literalType; } 027 028 @Override 029 public <R> R accept(RexNodeVisitor<R> visitor) { return visitor.visitLiteral(this); } 030 031 @Override 032 public String toString() { return value; } 033}