This is an automated email from the ASF dual-hosted git repository. wuweijie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new a08e83bb3c2 Remove MaskDistSQLConstants (#30611) a08e83bb3c2 is described below commit a08e83bb3c2f355514223728c123b71980d1cd8f Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Sat Mar 23 01:07:54 2024 +0800 Remove MaskDistSQLConstants (#30611) * Remove MaskDistSQLConstants * Refactor MaskImportRuleConfigurationProvider --- .../handler/constant/MaskDistSQLConstants.java | 44 ---------------------- .../MaskImportRuleConfigurationProvider.java | 19 ++++------ .../MaskRuleConfigurationToDistSQLConverter.java | 23 ++++++++--- 3 files changed, 25 insertions(+), 61 deletions(-) diff --git a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/constant/MaskDistSQLConstants.java b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/constant/MaskDistSQLConstants.java deleted file mode 100644 index d945ffb44f9..00000000000 --- a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/constant/MaskDistSQLConstants.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.shardingsphere.mask.distsql.handler.constant; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; - -/** - * Mask DistSQL constants. - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public final class MaskDistSQLConstants { - - public static final String COMMA = ","; - - public static final String SEMI = ";"; - - public static final String CREATE_MASK = "CREATE MASK RULE"; - - public static final String MASK = " %s (" - + System.lineSeparator() - + "COLUMNS(" - + System.lineSeparator() - + "%s" - + System.lineSeparator() - + "),"; - - public static final String MASK_COLUMN = "(NAME=%s, %s)"; -} diff --git a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java index 628ca2a59b7..02d1625452b 100644 --- a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java +++ b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java @@ -33,7 +33,6 @@ import org.apache.shardingsphere.mask.rule.MaskRule; import org.apache.shardingsphere.mask.spi.MaskAlgorithm; import java.util.Collection; -import java.util.LinkedList; import java.util.Map.Entry; import java.util.stream.Collectors; @@ -53,11 +52,6 @@ public final class MaskImportRuleConfigurationProvider implements ImportRuleConf checkMaskAlgorithmsExisted(maskRuleConfig, database.getName()); } - @Override - public DatabaseRule build(final ShardingSphereDatabase database, final RuleConfiguration ruleConfig, final InstanceContext instanceContext) { - return new MaskRule((MaskRuleConfiguration) ruleConfig); - } - private void checkTables(final MaskRuleConfiguration currentRuleConfig, final String databaseName) { Collection<String> tableNames = currentRuleConfig.getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList()); Collection<String> duplicatedTables = tableNames.stream().collect(Collectors.groupingBy(each -> each, Collectors.counting())).entrySet().stream() @@ -70,14 +64,17 @@ public final class MaskImportRuleConfigurationProvider implements ImportRuleConf } private void checkMaskAlgorithmsExisted(final MaskRuleConfiguration currentRuleConfig, final String databaseName) { - Collection<MaskColumnRuleConfiguration> columns = new LinkedList<>(); - currentRuleConfig.getTables().forEach(each -> columns.addAll(each.getColumns())); - Collection<String> notExistedAlgorithms = columns.stream().map(MaskColumnRuleConfiguration::getMaskAlgorithm).collect(Collectors.toList()); - Collection<String> maskAlgorithms = currentRuleConfig.getMaskAlgorithms().keySet(); - notExistedAlgorithms.removeIf(maskAlgorithms::contains); + Collection<String> notExistedAlgorithms = currentRuleConfig.getTables().stream() + .flatMap(each -> each.getColumns().stream()).map(MaskColumnRuleConfiguration::getMaskAlgorithm).collect(Collectors.toList()); + notExistedAlgorithms.removeIf(currentRuleConfig.getMaskAlgorithms().keySet()::contains); ShardingSpherePreconditions.checkState(notExistedAlgorithms.isEmpty(), () -> new MissingRequiredAlgorithmException(databaseName, notExistedAlgorithms)); } + @Override + public DatabaseRule build(final ShardingSphereDatabase database, final RuleConfiguration ruleConfig, final InstanceContext instanceContext) { + return new MaskRule((MaskRuleConfiguration) ruleConfig); + } + @Override public Class<? extends RuleConfiguration> getType() { return MaskRuleConfiguration.class; diff --git a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskRuleConfigurationToDistSQLConverter.java b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskRuleConfigurationToDistSQLConverter.java index 57f49942460..8add471ed30 100644 --- a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskRuleConfigurationToDistSQLConverter.java +++ b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskRuleConfigurationToDistSQLConverter.java @@ -23,7 +23,6 @@ import org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfigurat import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration; import org.apache.shardingsphere.mask.api.config.rule.MaskColumnRuleConfiguration; import org.apache.shardingsphere.mask.api.config.rule.MaskTableRuleConfiguration; -import org.apache.shardingsphere.mask.distsql.handler.constant.MaskDistSQLConstants; import java.util.Collection; import java.util.Iterator; @@ -34,21 +33,33 @@ import java.util.Map; */ public final class MaskRuleConfigurationToDistSQLConverter implements RuleConfigurationToDistSQLConverter<MaskRuleConfiguration> { + private static final String CREATE_MASK = "CREATE MASK RULE"; + + private static final String MASK = " %s (" + + System.lineSeparator() + + "COLUMNS(" + + System.lineSeparator() + + "%s" + + System.lineSeparator() + + "),"; + + private static final String MASK_COLUMN = "(NAME=%s, %s)"; + @Override public String convert(final MaskRuleConfiguration ruleConfig) { if (ruleConfig.getTables().isEmpty()) { return ""; } - StringBuilder result = new StringBuilder(MaskDistSQLConstants.CREATE_MASK); + StringBuilder result = new StringBuilder(CREATE_MASK); Iterator<MaskTableRuleConfiguration> iterator = ruleConfig.getTables().iterator(); while (iterator.hasNext()) { MaskTableRuleConfiguration tableRuleConfig = iterator.next(); - result.append(String.format(MaskDistSQLConstants.MASK, tableRuleConfig.getName(), getMaskColumns(tableRuleConfig.getColumns(), ruleConfig.getMaskAlgorithms()))); + result.append(String.format(MASK, tableRuleConfig.getName(), getMaskColumns(tableRuleConfig.getColumns(), ruleConfig.getMaskAlgorithms()))); if (iterator.hasNext()) { - result.append(MaskDistSQLConstants.COMMA).append(System.lineSeparator()); + result.append(",").append(System.lineSeparator()); } } - result.append(MaskDistSQLConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator()); + result.append(";").append(System.lineSeparator()).append(System.lineSeparator()); return result.toString(); } @@ -57,7 +68,7 @@ public final class MaskRuleConfigurationToDistSQLConverter implements RuleConfig Iterator<MaskColumnRuleConfiguration> iterator = columnRuleConfig.iterator(); if (iterator.hasNext()) { MaskColumnRuleConfiguration column = iterator.next(); - result.append(String.format(MaskDistSQLConstants.MASK_COLUMN, column.getLogicColumn(), getMaskAlgorithms(column, maskAlgorithms))); + result.append(String.format(MASK_COLUMN, column.getLogicColumn(), getMaskAlgorithms(column, maskAlgorithms))); } return result.toString(); }