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}