001package gudusoft.gsqlparser.nodes.snowflake;
002
003import gudusoft.gsqlparser.nodes.TConstant;
004import gudusoft.gsqlparser.nodes.TExpression;
005import gudusoft.gsqlparser.nodes.TObjectName;
006import gudusoft.gsqlparser.nodes.TObjectNameList;
007import gudusoft.gsqlparser.nodes.TParseTreeNode;
008
009/**
010 * Semantic attribute definition node (for Facts, Dimensions, Metrics).
011 * Represents: [PUBLIC|PRIVATE] table.attr_name AS expression [WITH SYNONYMS (...)] [COMMENT 'text']
012 */
013public class TSemanticAttributeDef extends TParseTreeNode {
014
015    private boolean isPrivate;
016    private TObjectName qualifiedName;
017    private TExpression expression;
018    private TObjectNameList synonyms;
019    private TConstant comment;
020
021    public boolean isPrivate() {
022        return isPrivate;
023    }
024
025    public void setPrivate(boolean isPrivate) {
026        this.isPrivate = isPrivate;
027    }
028
029    public TObjectName getQualifiedName() {
030        return qualifiedName;
031    }
032
033    public void setQualifiedName(TObjectName qualifiedName) {
034        this.qualifiedName = qualifiedName;
035    }
036
037    public TExpression getExpression() {
038        return expression;
039    }
040
041    public void setExpression(TExpression expression) {
042        this.expression = expression;
043    }
044
045    public TObjectNameList getSynonyms() {
046        return synonyms;
047    }
048
049    public void setSynonyms(TObjectNameList synonyms) {
050        this.synonyms = synonyms;
051    }
052
053    public TConstant getComment() {
054        return comment;
055    }
056
057    public void setComment(TConstant comment) {
058        this.comment = comment;
059    }
060
061    public void init(Object arg1) {
062        // Initialize from parser
063    }
064
065    public void init(Object arg1, Object arg2) {
066        // Initialize from parser with additional args
067    }
068}