This is an automated email from the ASF dual-hosted git repository.

zhangliang 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 e1c3b31  Optimize shadow determine condition. (#13310)
e1c3b31 is described below

commit e1c3b31837a760a3880ce6d5fb2ca2ae12f46596
Author: gin <[email protected]>
AuthorDate: Wed Oct 27 18:16:53 2021 +0800

    Optimize shadow determine condition. (#13310)
---
 .../shadow/condition/ShadowDetermineCondition.java | 22 +---------------------
 .../algorithm/ColumnShadowAlgorithmDeterminer.java | 11 ++++-------
 .../algorithm/NoteShadowAlgorithmDeterminer.java   |  6 +++---
 3 files changed, 8 insertions(+), 31 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
 
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
index c59606d..7bd1c95 100644
--- 
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
+++ 
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
@@ -22,17 +22,15 @@ import 
org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
 
 import java.util.Collection;
 import java.util.LinkedList;
-import java.util.Optional;
 
 /**
  * Shadow determine condition.
  */
+@Getter
 public final class ShadowDetermineCondition {
     
-    @Getter
     private final String tableName;
     
-    @Getter
     private final ShadowOperationType shadowOperationType;
     
     private final Collection<ShadowColumnCondition> shadowColumnConditions = 
new LinkedList<>();
@@ -56,15 +54,6 @@ public final class ShadowDetermineCondition {
     }
     
     /**
-     * Get SQL notes.
-     *
-     * @return SQL notes
-     */
-    public Optional<Collection<String>> getSqlNotes() {
-        return sqlNotes.isEmpty() ? Optional.empty() : Optional.of(sqlNotes);
-    }
-    
-    /**
      * Initialize shadow column condition.
      *
      * @param shadowColumnConditions shadow column conditions
@@ -74,13 +63,4 @@ public final class ShadowDetermineCondition {
         this.shadowColumnConditions.addAll(shadowColumnConditions);
         return this;
     }
-    
-    /**
-     * Get shadow column conditions.
-     *
-     * @return shadow column conditions
-     */
-    public Optional<Collection<ShadowColumnCondition>> 
getShadowColumnConditions() {
-        return shadowColumnConditions.isEmpty() ? Optional.empty() : 
Optional.of(shadowColumnConditions);
-    }
 }
diff --git 
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
 
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
index bac0685..c5ee5e8 100644
--- 
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
+++ 
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
@@ -28,7 +28,6 @@ import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
 import java.util.Collection;
 import java.util.LinkedList;
-import java.util.Optional;
 
 /**
  * Column shadow algorithm determiner.
@@ -40,12 +39,10 @@ public final class ColumnShadowAlgorithmDeterminer 
implements ShadowAlgorithmDet
     
     @Override
     public boolean isShadow(final ShadowDetermineCondition 
shadowDetermineCondition, final ShadowRule shadowRule) {
-        Optional<Collection<ShadowColumnCondition>> shadowColumnConditions = 
shadowDetermineCondition.getShadowColumnConditions();
-        if (shadowColumnConditions.isPresent()) {
-            for (ShadowColumnCondition each : shadowColumnConditions.get()) {
-                if (isShadowColumn(each, shadowRule, 
shadowDetermineCondition.getTableName(), 
shadowDetermineCondition.getShadowOperationType())) {
-                    return true;
-                }
+        Collection<ShadowColumnCondition> shadowColumnConditions = 
shadowDetermineCondition.getShadowColumnConditions();
+        for (ShadowColumnCondition each : shadowColumnConditions) {
+            if (isShadowColumn(each, shadowRule, 
shadowDetermineCondition.getTableName(), 
shadowDetermineCondition.getShadowOperationType())) {
+                return true;
             }
         }
         return false;
diff --git 
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
 
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
index b51e8c8..247d9d0 100644
--- 
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
+++ 
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
@@ -27,6 +27,7 @@ import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.stream.Collectors;
 
 /**
  * Note shadow algorithm determiner.
@@ -50,8 +51,7 @@ public final class NoteShadowAlgorithmDeterminer implements 
ShadowAlgorithmDeter
     private Collection<PreciseNoteShadowValue<Comparable<?>>> 
createNoteShadowValues(final ShadowDetermineCondition shadowDetermineCondition) 
{
         ShadowOperationType shadowOperationType = 
shadowDetermineCondition.getShadowOperationType();
         String tableName = shadowDetermineCondition.getTableName();
-        Collection<PreciseNoteShadowValue<Comparable<?>>> result = new 
LinkedList<>();
-        shadowDetermineCondition.getSqlNotes().ifPresent(notes -> 
notes.forEach(each -> result.add(new PreciseNoteShadowValue<>(tableName, 
shadowOperationType, each))));
-        return result;
+        return 
shadowDetermineCondition.getSqlNotes().stream().<PreciseNoteShadowValue<Comparable<?>>>map(each
 -> new PreciseNoteShadowValue<>(tableName, shadowOperationType, each))
+                .collect(Collectors.toCollection(LinkedList::new));
     }
 }

Reply via email to