Project: talenddataquality
Issue TDQ-8970: Integrate the t-swoosh algorithm in the tMatchGroup component
{color:green}-->Request：{color} - Add a radio button in the tMatchGroup wizard to select between T-Swoosh and Simple VSR algorithms (on the same rows as the "limit" field) --> when select "VSR", show the "key definition" table with 5 columns; --> when select "T-swoosh", show 2 tables: 1) "key definition" table with 8 columns, 2) Default Surviviorship Rules table with 3 columns. ( the 2nd table is locate under the 1st table) - When running the job, need to check which algorithm is selected, and use it in tMatchGroup. - (Reuse as much as possible the composite classes of the analysis editor) - (Reuse the same EMF model in the component as in the match rule of dq repository view) - Make sure the import/export match rules work with these new parameters (and that we did not break the old behavior) {color:green}-->Analyze/Design:{color} 1) UI part: - Need to add 2 swoosh's tables in ConfigureMatchRuleDialog, the current "Key definition" table is different with the table in the Match analysis, and the swoosh's table maybe also can not reuse the table in the match analysis - MatchRuleUIService is working for the tMatchGroup only, and the match analysis uses another set of table viewers. - The chart and the preview data table no need to change 2) Model part: - The match analysis uses: RecordMatchingIndicator, the tMatchGroup uses: - The T-swoosh need: SurvivorShipAlgorithmParams for AnalysisMatchRecordGrouping, - The tmatchgroup operate the match rules in its main.javajet, this means: if can not move it out to a java class( or reuse current ones), need to add the logic for swoosh in javajet too. It is better to consider how to make add different algorithm easier in future for tMatchGroup. 3) "Chart" part: - The "Chart" button on the ConfigureMatchRuleDialog now has 2 different logics: VSR and T-swoosh. The execution behind it is different. Need to check how many percent of the code from the match analysis can be reused. 4) execute algorithm part: - The match analysis uses : BlockAndMatchManager to execute ( in it, separate the algorithm, to use AnalysisMatchRecordGrouping or AnalysisSwooshMatchRecordGrouping). Currently the tMatchGroup overwrite "AbstractRecordGrouping" in its tMatchGroupIn_main.javajet, try to reuse the same logic for the match analysis. (If difficult, at least try to reuse AnalysisMatchRecordGrouping or AnalysisSwooshMatchRecordGrouping) - In tMatchGroupIn_main.javajet, too many match related logics, check if them can be replaced by related java classes in record.linkage. {color:green} --> Implement:{color} 1) UI part: - Firstly, modify the Configuration dialog: --> add the algorithm choose button, --> add 2 tables for swoosh: key definition, default survivorship rule (Can not reuse the table viewer : SurvivorShipTableViewer, because the component is different) need to check for each columns in the table ( value, how to initial swoosh algorithm with them in javajet) --> make the new tables action correct for add/remove row. --> when select swoosh : hide the VSR related table, show 2 swoosh related table; when select VSR, hide swoosh's tables, show VSR's table. 2) Model part: The component use the plugin: org.talend.designer.tdqmatching, so need to modify this plugin, to add the support for swoosh. 3) Chart on the config dialog: need make "chart" button work correctly for each algorithm: for swoosh algorithm: 4) run job part:
Story points: 20