001 002package gudusoft.gsqlparser.dlineage.dataflow.model; 003 004import java.util.ArrayList; 005import java.util.List; 006 007import gudusoft.gsqlparser.nodes.TParseTreeNode; 008 009public class FunctionRelationshipElement implements RelationshipElement<Function> { 010 011 private Function function; 012 013 private List<Transform> transforms = new ArrayList<Transform>(); 014 015 public FunctionRelationshipElement(Function function) { 016 this.function = function; 017 } 018 019 @Override 020 public Function getElement() { 021 return function; 022 } 023 024 @Override 025 public int hashCode() { 026 final int prime = 31; 027 int result = 1; 028 result = prime * result + ((function == null) ? 0 : function.hashCode()); 029 return result; 030 } 031 032 @Override 033 public boolean equals(Object obj) { 034 if (this == obj) 035 return true; 036 if (obj == null) 037 return false; 038 if (getClass() != obj.getClass()) 039 return false; 040 FunctionRelationshipElement other = (FunctionRelationshipElement) obj; 041 if (function == null) { 042 if (other.function != null) 043 return false; 044 } else if (!function.equals(other.function)) 045 return false; 046 return true; 047 } 048 049 @Override 050 public List<Transform> getTransforms() { 051 return transforms; 052 } 053 054 public void addTransform(String type, TParseTreeNode code) { 055 if (ModelBindingManager.getGlobalOption()!=null && !ModelBindingManager.getGlobalOption().isTransform()) { 056 return; 057 } 058 Transform transform = new Transform(); 059 transform.setType(type); 060 transform.setCode(code); 061 transforms.add(transform); 062 } 063}