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}