001 002package gudusoft.gsqlparser.dlineage.dataflow.model; 003 004import gudusoft.gsqlparser.TSourceToken; 005import gudusoft.gsqlparser.dlineage.util.Pair3; 006import gudusoft.gsqlparser.nodes.TDeclareVariable; 007import gudusoft.gsqlparser.nodes.TObjectName; 008import gudusoft.gsqlparser.util.SQLUtil; 009 010public class VariableProperty extends TableColumn { 011 012 public VariableProperty(Table variableTable, TObjectName variableName, TDeclareVariable variable) { 013 super(variableTable, variableName); 014 TSourceToken startToken = variable.getDefaultValue().getStartToken(); 015 TSourceToken endToken = variable.getDefaultValue().getEndToken(); 016 this.startPosition = new Pair3<Long, Long, String>(startToken.lineNo, startToken.columnNo, 017 ModelBindingManager.getGlobalHash()); 018 String[] segments = endToken.astext.split("\n"); 019 if (segments.length == 1) { 020 this.endPosition = new Pair3<Long, Long, String>(endToken.lineNo, 021 endToken.columnNo + SQLUtil.endTrim(endToken.astext).length(), ModelBindingManager.getGlobalHash()); 022 } 023 else{ 024 this.endPosition = new Pair3<Long, Long, String>(endToken.lineNo + segments.length - 1, 025 (long)segments[segments.length - 1].length() + 1, ModelBindingManager.getGlobalHash()); 026 } 027 } 028 029}