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}