Skip to content

Commit

Permalink
Add more test cases on MaskRuleConfigurationToDistSQLConverter
Browse files Browse the repository at this point in the history
  • Loading branch information
terrymanu committed Oct 29, 2024
1 parent d1b1475 commit 7620610
Showing 1 changed file with 12 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import org.apache.shardingsphere.mask.config.rule.MaskTableRuleConfiguration;

import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Collectors;

Expand All @@ -37,33 +36,24 @@ public final class MaskRuleConfigurationToDistSQLConverter implements RuleConfig

@Override
public String convert(final MaskRuleConfiguration ruleConfig) {
if (ruleConfig.getTables().isEmpty()) {
return "";
}
return MaskConvertDistSQLConstants.CREATE_MASK_RULE
+ ruleConfig.getTables().stream().map(each -> getMaskTable(ruleConfig, each)).collect(Collectors.joining(DistSQLConstants.COMMA + System.lineSeparator()))
+ DistSQLConstants.SEMI;
return ruleConfig.getTables().isEmpty() ? "" : MaskConvertDistSQLConstants.CREATE_MASK_RULE + convertMaskTables(ruleConfig) + DistSQLConstants.SEMI;
}

private String getMaskTable(final MaskRuleConfiguration ruleConfig, final MaskTableRuleConfiguration tableRuleConfig) {
return String.format(MaskConvertDistSQLConstants.MASK_TABLE, tableRuleConfig.getName(), getMaskColumns(tableRuleConfig.getColumns(), ruleConfig.getMaskAlgorithms()));
private String convertMaskTables(final MaskRuleConfiguration ruleConfig) {
return ruleConfig.getTables().stream().map(each -> convertMaskTable(each, ruleConfig.getMaskAlgorithms())).collect(Collectors.joining(DistSQLConstants.COMMA + System.lineSeparator()));
}

private String getMaskColumns(final Collection<MaskColumnRuleConfiguration> columnRuleConfig, final Map<String, AlgorithmConfiguration> maskAlgorithms) {
StringBuilder result = new StringBuilder();
Iterator<MaskColumnRuleConfiguration> iterator = columnRuleConfig.iterator();
while (iterator.hasNext()) {
MaskColumnRuleConfiguration column = iterator.next();
result.append(String.format(MaskConvertDistSQLConstants.MASK_COLUMN, column.getLogicColumn(), getMaskAlgorithms(column, maskAlgorithms)));
if (iterator.hasNext()) {
result.append(DistSQLConstants.COMMA).append(System.lineSeparator());
}
}
return result.toString();
private String convertMaskTable(final MaskTableRuleConfiguration tableRuleConfig, final Map<String, AlgorithmConfiguration> maskAlgorithms) {
return String.format(MaskConvertDistSQLConstants.MASK_TABLE, tableRuleConfig.getName(), convertMaskColumns(tableRuleConfig.getColumns(), maskAlgorithms));
}

private String getMaskAlgorithms(final MaskColumnRuleConfiguration columnRuleConfig, final Map<String, AlgorithmConfiguration> maskAlgorithms) {
return AlgorithmDistSQLConverter.getAlgorithmType(maskAlgorithms.get(columnRuleConfig.getMaskAlgorithm()));
private String convertMaskColumns(final Collection<MaskColumnRuleConfiguration> columnRuleConfigs, final Map<String, AlgorithmConfiguration> maskAlgorithms) {
return columnRuleConfigs.stream().map(each -> convertMaskColumn(each, maskAlgorithms)).collect(Collectors.joining(DistSQLConstants.COMMA + System.lineSeparator()));
}

private String convertMaskColumn(final MaskColumnRuleConfiguration columnRuleConfig, final Map<String, AlgorithmConfiguration> maskAlgorithms) {
return String.format(MaskConvertDistSQLConstants.MASK_COLUMN,
columnRuleConfig.getLogicColumn(), AlgorithmDistSQLConverter.getAlgorithmType(maskAlgorithms.get(columnRuleConfig.getMaskAlgorithm())));
}

@Override
Expand Down

0 comments on commit 7620610

Please sign in to comment.