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 17c2b4f3e7e Refactor 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria() (#34862)
17c2b4f3e7e is described below

commit 17c2b4f3e7e100ee262ff085a90cea01374cad48
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Tue Mar 4 17:12:51 2025 +0800

    Refactor DatabaseRuleNodePath.createRuleItemNameSearchCriteria() (#34862)
---
 .../changed/executor/type/RuleItemAlteredBuildExecutor.java |  2 +-
 .../changed/executor/type/RuleItemDroppedBuildExecutor.java |  2 +-
 .../node/path/type/metadata/rule/DatabaseRuleNodePath.java  |  5 +++--
 .../path/type/metadata/rule/DatabaseRuleNodePathTest.java   | 13 ++++++++-----
 4 files changed, 13 insertions(+), 9 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 236137a727a..ece1250e15f 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
@@ -34,7 +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()) {
-            Optional<String> itemName = NodePathSearcher.find(path, 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, 
databaseRuleNode.getRuleType(), each));
+            Optional<String> itemName = NodePathSearcher.find(path, 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, 
databaseRuleNode.getRuleType(), each, true));
             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 96bd5e31ae5..76ce8717741 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
@@ -34,7 +34,7 @@ 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(databaseName, 
databaseRuleNode.getRuleType(), each));
+            Optional<String> itemName = NodePathSearcher.find(path, 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, 
databaseRuleNode.getRuleType(), each, false));
             if (itemName.isPresent()) {
                 return Optional.of(new DatabaseRuleNodePath(databaseName, 
databaseRuleNode.getRuleType(), new DatabaseRuleItem(each, itemName.get())));
             }
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 f07d33227dc..7d01bf69a06 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
@@ -63,9 +63,10 @@ public final class DatabaseRuleNodePath implements NodePath {
      * @param databaseName database name
      * @param ruleType rule type
      * @param ruleItemType rule item type
+     * @param containsChildPath contains child path
      * @return create search criteria
      */
-    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);
+    public static NodePathSearchCriteria 
createRuleItemNameSearchCriteria(final String databaseName, final String 
ruleType, final String ruleItemType, final boolean containsChildPath) {
+        return new NodePathSearchCriteria(new 
DatabaseRuleNodePath(databaseName, ruleType, new DatabaseRuleItem(ruleItemType, 
NodePathPattern.QUALIFIED_IDENTIFIER)), false, containsChildPath, 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 8b6efde82c7..29738857576 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,11 +59,14 @@ class DatabaseRuleNodePathTest {
     @Test
     void assertCreateRuleItemNameSearchCriteria() {
         
assertThat(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value",
-                
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());
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", false)), 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", false)).isPresent());
+        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/bar_rule/foo_rule_item/item_value",
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", false)).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());
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", true)).isPresent());
+        
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value/versions/0",
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", false)).isPresent());
     }
 }

Reply via email to