You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by wu...@apache.org on 2024/03/22 17:08:01 UTC

(shardingsphere) branch master updated: Remove MaskDistSQLConstants (#30611)

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 <zh...@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();
     }