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