001package gudusoft.gsqlparser.dlineage.dataflow.model; 002 003/** 004 * Represents a single upstream source reference for a pipelined function output column. 005 */ 006public class PipelinedSourceRef { 007 private String parentName; 008 private String columnName; 009 private SourceKind sourceKind; 010 private EffectType effectType; 011 private String clauseType; 012 013 public enum SourceKind { 014 BASE_TABLE, CTE, SUBQUERY, CONST, UNRESOLVED 015 } 016 017 public PipelinedSourceRef(String parentName, String columnName, SourceKind sourceKind) { 018 this.parentName = parentName; 019 this.columnName = columnName; 020 this.sourceKind = sourceKind; 021 this.effectType = EffectType.select; 022 this.clauseType = "PIPE_ROW"; 023 } 024 025 public String getParentName() { 026 return parentName; 027 } 028 029 public void setParentName(String parentName) { 030 this.parentName = parentName; 031 } 032 033 public String getColumnName() { 034 return columnName; 035 } 036 037 public void setColumnName(String columnName) { 038 this.columnName = columnName; 039 } 040 041 public SourceKind getSourceKind() { 042 return sourceKind; 043 } 044 045 public void setSourceKind(SourceKind sourceKind) { 046 this.sourceKind = sourceKind; 047 } 048 049 public EffectType getEffectType() { 050 return effectType; 051 } 052 053 public void setEffectType(EffectType effectType) { 054 this.effectType = effectType; 055 } 056 057 public String getClauseType() { 058 return clauseType; 059 } 060 061 public void setClauseType(String clauseType) { 062 this.clauseType = clauseType; 063 } 064 065 @Override 066 public String toString() { 067 return parentName + "." + columnName + " (" + sourceKind + ")"; 068 } 069}