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 b14df6ceddb Refactor RuleItemAlteredBuildExecutor (#34861)
b14df6ceddb is described below

commit b14df6ceddb77aa290f9c91d1798cca4531c39f6
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Tue Mar 4 17:07:00 2025 +0800

    Refactor RuleItemAlteredBuildExecutor (#34861)
    
    * Refactor RuleItemAlteredBuildExecutor
    
    * Refactor RuleItemAlteredBuildExecutor
    
    * Refactor RuleItemAlteredBuildExecutor
    
    * Refactor RuleItemAlteredBuildExecutor
---
 .../changed/executor/type/RuleItemAlteredBuildExecutor.java   |  5 ++---
 .../changed/executor/type/RuleItemDroppedBuildExecutor.java   |  5 ++---
 .../node/path/type/metadata/rule/DatabaseRuleNodePath.java    |  5 +++--
 .../path/type/metadata/rule/DatabaseRuleNodePathTest.java     | 11 ++++++-----
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
index 72f571b8277..236137a727a 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.mode.metadata.changed.executor.type;
 
 import 
org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor;
-import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathPattern;
+import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleItem;
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleNodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.version.VersionNodePathParser;
@@ -34,8 +34,7 @@ public final class RuleItemAlteredBuildExecutor implements 
RuleItemChangedBuildE
     @Override
     public Optional<DatabaseRuleNodePath> build(final DatabaseRuleNode 
databaseRuleNode, final String databaseName, final String path) {
         for (String each : databaseRuleNode.getNamedItems()) {
-            DatabaseRuleNodePath databaseRuleNodePath = new 
DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new 
DatabaseRuleItem(each, NodePathPattern.QUALIFIED_IDENTIFIER));
-            Optional<String> itemName = new 
VersionNodePathParser(databaseRuleNodePath).findIdentifierByActiveVersionPath(path,
 1);
+            Optional<String> itemName = NodePathSearcher.find(path, 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, 
databaseRuleNode.getRuleType(), each));
             if (itemName.isPresent()) {
                 return Optional.of(new DatabaseRuleNodePath(databaseName, 
databaseRuleNode.getRuleType(), new DatabaseRuleItem(each, itemName.get())));
             }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
index 884e7025ff7..96bd5e31ae5 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.mode.metadata.changed.executor.type;
 
 import 
org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor;
-import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathPattern;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleItem;
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleNodePath;
@@ -35,13 +34,13 @@ public final class RuleItemDroppedBuildExecutor implements 
RuleItemChangedBuildE
     @Override
     public Optional<DatabaseRuleNodePath> build(final DatabaseRuleNode 
databaseRuleNode, final String databaseName, final String path) {
         for (String each : databaseRuleNode.getNamedItems()) {
-            Optional<String> itemName = NodePathSearcher.find(path, 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseRuleNode.getRuleType(),
 each));
+            Optional<String> itemName = NodePathSearcher.find(path, 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, 
databaseRuleNode.getRuleType(), each));
             if (itemName.isPresent()) {
                 return Optional.of(new DatabaseRuleNodePath(databaseName, 
databaseRuleNode.getRuleType(), new DatabaseRuleItem(each, itemName.get())));
             }
         }
         for (String each : databaseRuleNode.getUniqueItems()) {
-            DatabaseRuleNodePath databaseRuleNodePath = new 
DatabaseRuleNodePath(NodePathPattern.IDENTIFIER, 
databaseRuleNode.getRuleType(), new DatabaseRuleItem(each));
+            DatabaseRuleNodePath databaseRuleNodePath = new 
DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new 
DatabaseRuleItem(each));
             if (new 
VersionNodePathParser(databaseRuleNodePath).isActiveVersionPath(path)) {
                 return Optional.of(new DatabaseRuleNodePath(databaseName, 
databaseRuleNode.getRuleType(), new DatabaseRuleItem(each)));
             }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java
index 30213b88eb9..f07d33227dc 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java
@@ -60,11 +60,12 @@ public final class DatabaseRuleNodePath implements NodePath 
{
     /**
      * Create rule item name search criteria.
      *
+     * @param databaseName database name
      * @param ruleType rule type
      * @param ruleItemType rule item type
      * @return create search criteria
      */
-    public static NodePathSearchCriteria 
createRuleItemNameSearchCriteria(final String ruleType, final String 
ruleItemType) {
-        return new NodePathSearchCriteria(new 
DatabaseRuleNodePath(NodePathPattern.IDENTIFIER, ruleType, new 
DatabaseRuleItem(ruleItemType, NodePathPattern.IDENTIFIER)), false, false, 2);
+    public static NodePathSearchCriteria 
createRuleItemNameSearchCriteria(final String databaseName, final String 
ruleType, final String ruleItemType) {
+        return new NodePathSearchCriteria(new 
DatabaseRuleNodePath(databaseName, ruleType, new DatabaseRuleItem(ruleItemType, 
NodePathPattern.QUALIFIED_IDENTIFIER)), false, true, 1);
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java
index ba0e42dbf1b..8b6efde82c7 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java
@@ -59,10 +59,11 @@ class DatabaseRuleNodePathTest {
     @Test
     void assertCreateRuleItemNameSearchCriteria() {
         
assertThat(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value",
-                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", 
"foo_rule_item")), is(Optional.of("item_value")));
-        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item",
 DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", 
"foo_rule_item")).isPresent());
-        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/bar_rule/foo_rule_item/item_value",
 DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", 
"foo_rule_item")).isPresent());
-        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value/versions/0",
-                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", 
"foo_rule_item")).isPresent());
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item")), is(Optional.of("item_value")));
+        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item",
 DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item")).isPresent());
+        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/bar_rule/foo_rule_item/item_value",
 DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item"))
+                .isPresent());
+        
assertTrue(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value/versions/0",
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item")).isPresent());
     }
 }

Reply via email to