001
002package gudusoft.gsqlparser.dlineage.dataflow.model;
003
004import gudusoft.gsqlparser.TSourceToken;
005import gudusoft.gsqlparser.dlineage.util.Pair3;
006import gudusoft.gsqlparser.nodes.TAliasClause;
007import gudusoft.gsqlparser.util.SQLUtil;
008
009public class Alias extends ResultSet {
010
011        private String aliasName;
012        private Pair3<Long, Long, String> startPosition;
013        private Pair3<Long, Long, String> endPosition;
014
015        private TAliasClause aliasClause;
016
017        public Alias(TAliasClause aliasClause) {
018                super(aliasClause, true);
019
020                this.aliasClause = aliasClause;
021
022                TSourceToken startToken = aliasClause.getStartToken();
023                if (startToken == null && aliasClause.getAliasName() != null) {
024                        startToken = aliasClause.getAliasName().getStartToken();
025                }
026                TSourceToken endToken = aliasClause.getEndToken();
027                if (endToken == null && aliasClause.getAliasName() != null) {
028                        endToken = aliasClause.getAliasName().getEndToken();
029                }
030
031                this.startPosition = new Pair3<Long, Long, String>(startToken.lineNo, startToken.columnNo, ModelBindingManager.getGlobalHash());
032                this.endPosition = new Pair3<Long, Long, String>(endToken.lineNo, endToken.columnNo + SQLUtil.endTrim(endToken.astext).length(), ModelBindingManager.getGlobalHash());
033
034                if (aliasClause.getAliasName() != null) {
035                        this.aliasName = aliasClause.getAliasName().toString();
036                }
037                else{
038                        this.aliasName = "alias";
039                }
040        }
041
042        public Pair3<Long, Long, String> getStartPosition() {
043                return startPosition;
044        }
045
046        public Pair3<Long, Long, String> getEndPosition() {
047                return endPosition;
048        }
049
050        public String getAliasName() {
051                return aliasName;
052        }
053
054        public TAliasClause getAliasObject() {
055                return aliasClause;
056        }
057
058}