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 afd2198960d Refactor ShardingParameterRewriterBuilder (#33614)
afd2198960d is described below

commit afd2198960ddb9b9625bc5bbae2210c7d1391ddf
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Nov 11 23:57:46 2024 +0800

    Refactor ShardingParameterRewriterBuilder (#33614)
    
    * Refactor ShardingParameterRewriterBuilder
    
    * Refactor ShardingParameterRewriterBuilder
---
 .../context/ShardingSQLRewriteContextDecorator.java        |  3 +--
 .../parameter/ShardingParameterRewriterBuilder.java        | 14 +-------------
 .../impl/ShardingPaginationParameterRewriter.java          |  9 ++++-----
 .../parameter/ShardingParameterRewriterBuilderTest.java    |  7 ++-----
 .../impl/ShardingPaginationParameterRewriterTest.java      |  5 ++---
 5 files changed, 10 insertions(+), 28 deletions(-)

diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
index baff4e29055..99446c80dc2 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
@@ -51,8 +51,7 @@ public final class ShardingSQLRewriteContextDecorator 
implements SQLRewriteConte
             return;
         }
         if (!sqlRewriteContext.getParameters().isEmpty()) {
-            Collection<ParameterRewriter> parameterRewriters =
-                    new ShardingParameterRewriterBuilder(routeContext, 
sqlRewriteContext.getDatabase().getSchemas(), 
sqlStatementContext).getParameterRewriters();
+            Collection<ParameterRewriter> parameterRewriters = new 
ShardingParameterRewriterBuilder(routeContext, 
sqlStatementContext).getParameterRewriters();
             rewriteParameters(sqlRewriteContext, parameterRewriters);
         }
         sqlRewriteContext.addSQLTokenGenerators(new 
ShardingTokenGenerateBuilder(rule, routeContext, 
sqlStatementContext).getSQLTokenGenerators());
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java
index 0bcd340b3ee..1511205dd3c 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java
@@ -19,18 +19,14 @@ package 
org.apache.shardingsphere.sharding.rewrite.parameter;
 
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
 import 
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriterBuilder;
 import 
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.keygen.GeneratedKeyInsertValueParameterRewriter;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.aware.RouteContextAware;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.aware.SchemaMetaDataAware;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import 
org.apache.shardingsphere.sharding.rewrite.parameter.impl.ShardingPaginationParameterRewriter;
 
 import java.util.Collection;
 import java.util.LinkedList;
-import java.util.Map;
 
 /**
  * Parameter rewriter builder for sharding.
@@ -40,25 +36,17 @@ public final class ShardingParameterRewriterBuilder 
implements ParameterRewriter
     
     private final RouteContext routeContext;
     
-    private final Map<String, ShardingSphereSchema> schemas;
-    
     private final SQLStatementContext sqlStatementContext;
     
     @Override
     public Collection<ParameterRewriter> getParameterRewriters() {
         Collection<ParameterRewriter> result = new LinkedList<>();
         addParameterRewriter(result, new 
GeneratedKeyInsertValueParameterRewriter());
-        addParameterRewriter(result, new 
ShardingPaginationParameterRewriter());
+        addParameterRewriter(result, new 
ShardingPaginationParameterRewriter(routeContext));
         return result;
     }
     
     private void addParameterRewriter(final Collection<ParameterRewriter> 
paramRewriters, final ParameterRewriter toBeAddedParamRewriter) {
-        if (toBeAddedParamRewriter instanceof SchemaMetaDataAware) {
-            ((SchemaMetaDataAware) toBeAddedParamRewriter).setSchemas(schemas);
-        }
-        if (toBeAddedParamRewriter instanceof RouteContextAware) {
-            ((RouteContextAware) 
toBeAddedParamRewriter).setRouteContext(routeContext);
-        }
         if (toBeAddedParamRewriter.isNeedRewrite(sqlStatementContext)) {
             paramRewriters.add(toBeAddedParamRewriter);
         }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriter.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriter.java
index f50cb518328..d03383e3e44 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriter.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriter.java
@@ -17,8 +17,7 @@
 
 package org.apache.shardingsphere.sharding.rewrite.parameter.impl;
 
-import lombok.Setter;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.aware.RouteContextAware;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.pagination.PaginationContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
@@ -32,10 +31,10 @@ import java.util.List;
 /**
  * Sharding pagination parameter rewriter.
  */
-@Setter
-public final class ShardingPaginationParameterRewriter implements 
ParameterRewriter, RouteContextAware {
+@RequiredArgsConstructor
+public final class ShardingPaginationParameterRewriter implements 
ParameterRewriter {
     
-    private RouteContext routeContext;
+    private final RouteContext routeContext;
     
     @Override
     public boolean isNeedRewrite(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilderTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilderTest.java
index 084babd58e5..c6b8673c255 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilderTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilderTest.java
@@ -18,14 +18,12 @@
 package org.apache.shardingsphere.sharding.rewrite.parameter;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import 
org.apache.shardingsphere.sharding.rewrite.parameter.impl.ShardingPaginationParameterRewriter;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collection;
-import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
@@ -41,8 +39,7 @@ class ShardingParameterRewriterBuilderTest {
     void assertGetParameterRewritersWhenPaginationIsNeedRewrite() {
         SelectStatementContext statementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         
when(statementContext.getPaginationContext().isHasPagination()).thenReturn(true);
-        Collection<ParameterRewriter> actual = new 
ShardingParameterRewriterBuilder(
-                mock(RouteContext.class), Collections.singletonMap("test", 
mock(ShardingSphereSchema.class)), statementContext).getParameterRewriters();
+        Collection<ParameterRewriter> actual = new 
ShardingParameterRewriterBuilder(mock(RouteContext.class), 
statementContext).getParameterRewriters();
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next(), 
instanceOf(ShardingPaginationParameterRewriter.class));
     }
@@ -53,6 +50,6 @@ class ShardingParameterRewriterBuilderTest {
         when(routeContext.isSingleRouting()).thenReturn(true);
         SelectStatementContext statementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         
when(statementContext.getPaginationContext().isHasPagination()).thenReturn(true);
-        assertTrue(new ShardingParameterRewriterBuilder(routeContext, 
Collections.singletonMap("test", mock(ShardingSphereSchema.class)), 
statementContext).getParameterRewriters().isEmpty());
+        assertTrue(new ShardingParameterRewriterBuilder(routeContext, 
statementContext).getParameterRewriters().isEmpty());
     }
 }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriterTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriterTest.java
index 7f89901c015..eb425cc6cc4 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriterTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameter/impl/ShardingPaginationParameterRewriterTest.java
@@ -53,9 +53,8 @@ class ShardingPaginationParameterRewriterTest {
     
     @Test
     void assertIsNeedRewrite() {
-        ShardingPaginationParameterRewriter paramRewriter = new 
ShardingPaginationParameterRewriter();
         RouteContext routeContext = mock(RouteContext.class);
-        paramRewriter.setRouteContext(routeContext);
+        ShardingPaginationParameterRewriter paramRewriter = new 
ShardingPaginationParameterRewriter(routeContext);
         InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class);
         assertFalse(paramRewriter.isNeedRewrite(insertStatementContext));
         SelectStatementContext selectStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
@@ -81,7 +80,7 @@ class ShardingPaginationParameterRewriterTest {
         when(pagination.getRevisedOffset()).thenReturn(TEST_REVISED_OFFSET);
         
when(pagination.getRevisedRowCount(selectStatementContext)).thenReturn(TEST_REVISED_ROW_COUNT);
         
when(selectStatementContext.getPaginationContext()).thenReturn(pagination);
-        new 
ShardingPaginationParameterRewriter().rewrite(standardParamBuilder, 
selectStatementContext, null);
+        new 
ShardingPaginationParameterRewriter(null).rewrite(standardParamBuilder, 
selectStatementContext, null);
         assertTrue(addOffsetParametersFlag);
         assertTrue(addRowCountParameterFlag);
     }

Reply via email to