001package gudusoft.gsqlparser.dlineage;
002
003import gudusoft.gsqlparser.dlineage.dataflow.listener.DataFlowHandleListener;
004import gudusoft.gsqlparser.dlineage.dataflow.model.DbObjectPosition;
005import gudusoft.gsqlparser.dlineage.dataflow.model.ErrorInfo;
006import gudusoft.gsqlparser.dlineage.dataflow.model.Option;
007import gudusoft.gsqlparser.dlineage.dataflow.model.SqlInfo;
008import gudusoft.gsqlparser.dlineage.dataflow.model.json.Coordinate;
009import gudusoft.gsqlparser.dlineage.dataflow.model.xml.dataflow;
010import gudusoft.gsqlparser.sqlenv.TSQLEnv;
011
012import java.util.List;
013import java.util.Map;
014
015public interface IDataFlowAnalyzer {
016    boolean isIgnoreRecordSet();
017
018    void setIgnoreRecordSet(boolean ignoreRecordSet);
019
020    boolean isSimpleShowTopSelectResultSet();
021
022    void setSimpleShowTopSelectResultSet(boolean simpleShowTopSelectResultSet);
023
024    boolean isSimpleShowFunction();
025
026    void setSimpleShowFunction(boolean simpleShowFunction);
027
028    boolean isShowJoin();
029
030    void setShowJoin(boolean showJoin);
031
032    boolean isShowImplicitSchema();
033
034    void setShowImplicitSchema(boolean showImplicitSchema);
035
036    boolean isShowConstantTable();
037
038    void setShowConstantTable(boolean showConstantTable);
039
040    boolean isShowCountTableColumn();
041
042    void setShowCountTableColumn(boolean showCountTableColumn);
043
044    boolean isTransform();
045
046    void setTransform(boolean transform);
047
048    boolean isTransformCoordinate();
049
050    void setTransformCoordinate(boolean transformCoordinate);
051
052    boolean isLinkOrphanColumnToFirstTable();
053
054    void setLinkOrphanColumnToFirstTable(boolean linkOrphanColumnToFirstTable);
055
056    boolean isIgnoreCoordinate();
057
058    void setIgnoreCoordinate(boolean ignoreCoordinate);
059
060    void setHandleListener(DataFlowHandleListener listener);
061
062    void setSqlEnv(TSQLEnv sqlenv);
063
064    void setOption(Option option);
065
066    Option getOption();
067
068    List<ErrorInfo> getErrorMessages();
069
070    String generateSqlInfos();
071
072    String generateDataFlow();
073
074    Map<String, List<SqlInfo>> getSqlInfos();
075
076    /**
077     * @deprecated please use SqlInfoHelper.getSelectedDbObjectInfo
078     */
079    DbObjectPosition getSelectedDbObjectInfo(Coordinate start, Coordinate end);
080
081    String generateDataFlow(boolean withExtraInfo);
082
083    void dispose();
084
085    dataflow getDataFlow();
086
087    Map<String, String> getHashSQLMap();
088}