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

duanzhengqiang 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 8f2148a1f5f Remove useless ShardingRuleAware (#32414)
8f2148a1f5f is described below

commit 8f2148a1f5f97364e6a4127385019e697a8840d1
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Aug 5 23:37:43 2024 +0800

    Remove useless ShardingRuleAware (#32414)
    
    * Refactor ShardingTokenGenerateBuilder
    
    * Remove useless ShardingRuleAware
---
 .../rewrite/token/EncryptTokenGenerateBuilder.java |  4 ---
 .../ShardingSQLRewriteContextDecorator.java        |  2 +-
 .../ShardingParameterRewriterBuilder.java          |  9 +-----
 .../token/ShardingTokenGenerateBuilder.java        | 24 +++++++---------
 .../impl/ShardingConstraintTokenGenerator.java     |  9 +++---
 .../impl/ShardingCursorTokenGenerator.java         |  9 +++---
 .../impl/ShardingIndexTokenGenerator.java          |  7 +++--
 .../impl/ShardingTableTokenGenerator.java          |  7 +++--
 .../sharding/rule/aware/ShardingRuleAware.java     | 33 ----------------------
 .../ShardingParameterRewriterBuilderTest.java      |  6 ++--
 .../token/ShardingTokenGenerateBuilderTest.java    |  4 ---
 .../ShardingConstraintTokenGeneratorTest.java      |  5 ++--
 .../ShardingCursorTokenGeneratorTest.java          |  5 ++--
 .../generator/ShardingIndexTokenGeneratorTest.java |  5 ++--
 .../token/generator/TableTokenGeneratorTest.java   | 12 +++-----
 15 files changed, 41 insertions(+), 100 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
index 056e8e07165..b948ce29b80 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
@@ -21,7 +21,6 @@ import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseTypeAware;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment.EncryptInsertAssignmentTokenGenerator;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment.EncryptUpdateAssignmentTokenGenerator;
@@ -89,9 +88,6 @@ public final class EncryptTokenGenerateBuilder implements 
SQLTokenGeneratorBuild
     }
     
     private void setUpSQLTokenGenerator(final SQLTokenGenerator 
toBeAddedSQLTokenGenerator) {
-        if (toBeAddedSQLTokenGenerator instanceof EncryptRuleAware) {
-            ((EncryptRuleAware) 
toBeAddedSQLTokenGenerator).setEncryptRule(encryptRule);
-        }
         if (toBeAddedSQLTokenGenerator instanceof EncryptConditionsAware) {
             ((EncryptConditionsAware) 
toBeAddedSQLTokenGenerator).setEncryptConditions(encryptConditions);
         }
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 28d870260e2..a1f4cff49b7 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
@@ -52,7 +52,7 @@ public final class ShardingSQLRewriteContextDecorator 
implements SQLRewriteConte
         }
         if (!sqlRewriteContext.getParameters().isEmpty()) {
             Collection<ParameterRewriter> parameterRewriters =
-                    new ShardingParameterRewriterBuilder(shardingRule, 
routeContext, sqlRewriteContext.getDatabase().getSchemas(), 
sqlStatementContext).getParameterRewriters();
+                    new ShardingParameterRewriterBuilder(routeContext, 
sqlRewriteContext.getDatabase().getSchemas(), 
sqlStatementContext).getParameterRewriters();
             rewriteParameters(sqlRewriteContext, parameterRewriters);
         }
         sqlRewriteContext.addSQLTokenGenerators(new 
ShardingTokenGenerateBuilder(shardingRule, 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 ddcd5e17cad..0bcd340b3ee 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
@@ -22,13 +22,11 @@ import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont
 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.infra.rewrite.parameter.rewriter.keygen.GeneratedKeyInsertValueParameterRewriter;
 import 
org.apache.shardingsphere.sharding.rewrite.parameter.impl.ShardingPaginationParameterRewriter;
-import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 
 import java.util.Collection;
 import java.util.LinkedList;
@@ -40,8 +38,6 @@ import java.util.Map;
 @RequiredArgsConstructor
 public final class ShardingParameterRewriterBuilder implements 
ParameterRewriterBuilder {
     
-    private final ShardingRule shardingRule;
-    
     private final RouteContext routeContext;
     
     private final Map<String, ShardingSphereSchema> schemas;
@@ -60,9 +56,6 @@ public final class ShardingParameterRewriterBuilder 
implements ParameterRewriter
         if (toBeAddedParamRewriter instanceof SchemaMetaDataAware) {
             ((SchemaMetaDataAware) toBeAddedParamRewriter).setSchemas(schemas);
         }
-        if (toBeAddedParamRewriter instanceof ShardingRuleAware) {
-            ((ShardingRuleAware) 
toBeAddedParamRewriter).setShardingRule(shardingRule);
-        }
         if (toBeAddedParamRewriter instanceof RouteContextAware) {
             ((RouteContextAware) 
toBeAddedParamRewriter).setRouteContext(routeContext);
         }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilder.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilder.java
index 7143637cb8f..3879acd0064 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilder.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilder.java
@@ -22,6 +22,10 @@ import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.SQLTokenGenerator;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.aware.RouteContextAware;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.builder.SQLTokenGeneratorBuilder;
+import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyAssignmentTokenGenerator;
+import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyForUseDefaultInsertColumnsTokenGenerator;
+import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyInsertColumnTokenGenerator;
+import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyInsertValuesTokenGenerator;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.IgnoreForSingleRoute;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingAggregationDistinctTokenGenerator;
@@ -30,19 +34,14 @@ import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingC
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingDistinctProjectionPrefixTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingFetchDirectionTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingIndexTokenGenerator;
+import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingInsertValuesTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingOffsetTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingOrderByTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingProjectionsTokenGenerator;
-import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingRowCountTokenGenerator;
-import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingInsertValuesTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingRemoveTokenGenerator;
+import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingRowCountTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingTableTokenGenerator;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyAssignmentTokenGenerator;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyForUseDefaultInsertColumnsTokenGenerator;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyInsertColumnTokenGenerator;
-import 
org.apache.shardingsphere.infra.rewrite.sql.token.keygen.generator.GeneratedKeyInsertValuesTokenGenerator;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 
 import java.util.Collection;
 import java.util.LinkedList;
@@ -62,13 +61,13 @@ public final class ShardingTokenGenerateBuilder implements 
SQLTokenGeneratorBuil
     @Override
     public Collection<SQLTokenGenerator> getSQLTokenGenerators() {
         Collection<SQLTokenGenerator> result = new LinkedList<>();
-        addSQLTokenGenerator(result, new ShardingTableTokenGenerator());
+        addSQLTokenGenerator(result, new 
ShardingTableTokenGenerator(shardingRule));
         addSQLTokenGenerator(result, new 
ShardingDistinctProjectionPrefixTokenGenerator());
         addSQLTokenGenerator(result, new ShardingProjectionsTokenGenerator());
         addSQLTokenGenerator(result, new ShardingOrderByTokenGenerator());
         addSQLTokenGenerator(result, new 
ShardingAggregationDistinctTokenGenerator());
-        addSQLTokenGenerator(result, new ShardingIndexTokenGenerator());
-        addSQLTokenGenerator(result, new ShardingConstraintTokenGenerator());
+        addSQLTokenGenerator(result, new 
ShardingIndexTokenGenerator(shardingRule));
+        addSQLTokenGenerator(result, new 
ShardingConstraintTokenGenerator(shardingRule));
         addSQLTokenGenerator(result, new ShardingOffsetTokenGenerator());
         addSQLTokenGenerator(result, new ShardingRowCountTokenGenerator());
         addSQLTokenGenerator(result, new 
GeneratedKeyInsertColumnTokenGenerator());
@@ -77,7 +76,7 @@ public final class ShardingTokenGenerateBuilder implements 
SQLTokenGeneratorBuil
         addSQLTokenGenerator(result, new ShardingInsertValuesTokenGenerator());
         addSQLTokenGenerator(result, new 
GeneratedKeyInsertValuesTokenGenerator());
         addSQLTokenGenerator(result, new ShardingRemoveTokenGenerator());
-        addSQLTokenGenerator(result, new ShardingCursorTokenGenerator());
+        addSQLTokenGenerator(result, new 
ShardingCursorTokenGenerator(shardingRule));
         addSQLTokenGenerator(result, new 
ShardingFetchDirectionTokenGenerator());
         return result;
     }
@@ -86,9 +85,6 @@ public final class ShardingTokenGenerateBuilder implements 
SQLTokenGeneratorBuil
         if (toBeAddedSQLTokenGenerator instanceof IgnoreForSingleRoute && 
routeContext.isSingleRouting()) {
             return;
         }
-        if (toBeAddedSQLTokenGenerator instanceof ShardingRuleAware) {
-            ((ShardingRuleAware) 
toBeAddedSQLTokenGenerator).setShardingRule(shardingRule);
-        }
         if (toBeAddedSQLTokenGenerator instanceof RouteContextAware) {
             ((RouteContextAware) 
toBeAddedSQLTokenGenerator).setRouteContext(routeContext);
         }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingConstraintTokenGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingConstraintTokenGenerator.java
index cb252bdbdb7..44a392b2e95 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingConstraintTokenGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingConstraintTokenGenerator.java
@@ -17,14 +17,13 @@
 
 package org.apache.shardingsphere.sharding.rewrite.token.generator.impl;
 
-import lombok.Setter;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.ConstraintAvailable;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.CollectionSQLTokenGenerator;
 import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
 import org.apache.shardingsphere.sharding.rewrite.token.pojo.ConstraintToken;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.constraint.ConstraintSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 
@@ -34,10 +33,10 @@ import java.util.LinkedList;
 /**
  * Sharding constraint token generator.
  */
-@Setter
-public final class ShardingConstraintTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ShardingRuleAware {
+@RequiredArgsConstructor
+public final class ShardingConstraintTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext> {
     
-    private ShardingRule shardingRule;
+    private final ShardingRule shardingRule;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingCursorTokenGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingCursorTokenGenerator.java
index 2c9f637577f..2988d01211e 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingCursorTokenGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingCursorTokenGenerator.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.sharding.rewrite.token.generator.impl;
 
-import lombok.Setter;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.CursorAvailable;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.OptionalSQLTokenGenerator;
@@ -25,16 +25,15 @@ import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
 import 
org.apache.shardingsphere.sharding.exception.connection.CursorNameNotFoundException;
 import org.apache.shardingsphere.sharding.rewrite.token.pojo.CursorToken;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.cursor.CursorNameSegment;
 
 /**
  * Sharding cursor token generator.
  */
-@Setter
-public final class ShardingCursorTokenGenerator implements 
OptionalSQLTokenGenerator<SQLStatementContext>, ShardingRuleAware {
+@RequiredArgsConstructor
+public final class ShardingCursorTokenGenerator implements 
OptionalSQLTokenGenerator<SQLStatementContext> {
     
-    private ShardingRule shardingRule;
+    private final ShardingRule shardingRule;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingIndexTokenGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingIndexTokenGenerator.java
index eea53496126..a547759f330 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingIndexTokenGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingIndexTokenGenerator.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.rewrite.token.generator.impl;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.IndexAvailable;
@@ -30,7 +31,6 @@ import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.sharding.rewrite.token.pojo.IndexToken;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
 
 import java.util.Collection;
@@ -40,10 +40,11 @@ import java.util.Map;
 /**
  * Sharding index token generator.
  */
+@RequiredArgsConstructor
 @Setter
-public final class ShardingIndexTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ShardingRuleAware, 
SchemaMetaDataAware {
+public final class ShardingIndexTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, SchemaMetaDataAware {
     
-    private ShardingRule shardingRule;
+    private final ShardingRule shardingRule;
     
     private Map<String, ShardingSphereSchema> schemas;
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingTableTokenGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingTableTokenGenerator.java
index 2a3674c0afe..622b8c360ca 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingTableTokenGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingTableTokenGenerator.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.rewrite.token.generator.impl;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.binder.context.aware.CursorAware;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -27,7 +28,6 @@ import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import 
org.apache.shardingsphere.sharding.rewrite.token.pojo.ShardingTableToken;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
 
@@ -38,10 +38,11 @@ import java.util.LinkedList;
 /**
  * Sharding table token generator.
  */
+@RequiredArgsConstructor
 @Setter
-public final class ShardingTableTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ShardingRuleAware, 
RouteContextAware {
+public final class ShardingTableTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, RouteContextAware {
     
-    private ShardingRule shardingRule;
+    private final ShardingRule shardingRule;
     
     private RouteContext routeContext;
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/aware/ShardingRuleAware.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/aware/ShardingRuleAware.java
deleted file mode 100644
index aba0532a9c3..00000000000
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/aware/ShardingRuleAware.java
+++ /dev/null
@@ -1,33 +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.sharding.rule.aware;
-
-import org.apache.shardingsphere.sharding.rule.ShardingRule;
-
-/**
- * Sharding rule aware.
- */
-public interface ShardingRuleAware {
-    
-    /**
-     * Set sharding rule.
-     *
-     * @param shardingRule sharding rule
-     */
-    void setShardingRule(ShardingRule shardingRule);
-}
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 76d3376c0f3..084babd58e5 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
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 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.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collection;
@@ -43,7 +42,7 @@ class ShardingParameterRewriterBuilderTest {
         SelectStatementContext statementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         
when(statementContext.getPaginationContext().isHasPagination()).thenReturn(true);
         Collection<ParameterRewriter> actual = new 
ShardingParameterRewriterBuilder(
-                mock(ShardingRule.class), mock(RouteContext.class), 
Collections.singletonMap("test", mock(ShardingSphereSchema.class)), 
statementContext).getParameterRewriters();
+                mock(RouteContext.class), Collections.singletonMap("test", 
mock(ShardingSphereSchema.class)), statementContext).getParameterRewriters();
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next(), 
instanceOf(ShardingPaginationParameterRewriter.class));
     }
@@ -54,7 +53,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(
-                mock(ShardingRule.class), routeContext, 
Collections.singletonMap("test", mock(ShardingSphereSchema.class)), 
statementContext).getParameterRewriters().isEmpty());
+        assertTrue(new ShardingParameterRewriterBuilder(routeContext, 
Collections.singletonMap("test", mock(ShardingSphereSchema.class)), 
statementContext).getParameterRewriters().isEmpty());
     }
 }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
index 66f77a2b835..b04a26c93a6 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingD
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingRemoveTokenGenerator;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingTableTokenGenerator;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.internal.configuration.plugins.Plugins;
@@ -77,9 +76,6 @@ class ShardingTokenGenerateBuilderTest {
     }
     
     private void assertSqlTokenGenerator(final SQLTokenGenerator 
sqlTokenGenerator) throws Exception {
-        if (sqlTokenGenerator instanceof ShardingRuleAware) {
-            assertField(sqlTokenGenerator, shardingRule, "shardingRule");
-        }
         if (sqlTokenGenerator instanceof RouteContextAware) {
             assertField(sqlTokenGenerator, routeContext, "routeContext");
         }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingConstraintTokenGeneratorTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingConstraintTokenGeneratorTest.java
index 57fe54c9949..490284380ba 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingConstraintTokenGeneratorTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingConstraintTokenGeneratorTest.java
@@ -42,7 +42,7 @@ class ShardingConstraintTokenGeneratorTest {
     
     @Test
     void assertIsGenerateSQLToken() {
-        ShardingConstraintTokenGenerator generator = new 
ShardingConstraintTokenGenerator();
+        ShardingConstraintTokenGenerator generator = new 
ShardingConstraintTokenGenerator(mock(ShardingRule.class));
         
assertFalse(generator.isGenerateSQLToken(mock(UnknownSQLStatementContext.class)));
         AlterTableStatementContext alterTableStatementContext = 
mock(AlterTableStatementContext.class);
         Collection<ConstraintSegment> constraintSegments = new LinkedList<>();
@@ -61,8 +61,7 @@ class ShardingConstraintTokenGeneratorTest {
         
when(constraintSegment.getIdentifier()).thenReturn(constraintIdentifier);
         AlterTableStatementContext alterTableStatementContext = 
mock(AlterTableStatementContext.class);
         
when(alterTableStatementContext.getConstraints()).thenReturn(Collections.singleton(constraintSegment));
-        ShardingConstraintTokenGenerator generator = new 
ShardingConstraintTokenGenerator();
-        generator.setShardingRule(mock(ShardingRule.class));
+        ShardingConstraintTokenGenerator generator = new 
ShardingConstraintTokenGenerator(mock(ShardingRule.class));
         Collection<SQLToken> actual = 
generator.generateSQLTokens(alterTableStatementContext);
         assertThat(actual.size(), is(1));
         assertConstraintToken((ConstraintToken) actual.iterator().next());
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingCursorTokenGeneratorTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingCursorTokenGeneratorTest.java
index 79dfbfbfb6d..652060890b8 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingCursorTokenGeneratorTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingCursorTokenGeneratorTest.java
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatem
 import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
 import 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingCursorTokenGenerator;
 import org.apache.shardingsphere.sharding.rewrite.token.pojo.CursorToken;
+import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.cursor.CursorNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 import org.junit.jupiter.api.Test;
@@ -42,7 +43,7 @@ class ShardingCursorTokenGeneratorTest {
     
     @Test
     void assertIsGenerateSQLToken() {
-        ShardingCursorTokenGenerator generator = new 
ShardingCursorTokenGenerator();
+        ShardingCursorTokenGenerator generator = new 
ShardingCursorTokenGenerator(mock(ShardingRule.class));
         
assertFalse(generator.isGenerateSQLToken(mock(SelectStatementContext.class)));
         Optional<CursorNameSegment> cursorName = Optional.of(new 
CursorNameSegment(0, 0, new IdentifierValue("t_order_cursor")));
         CursorStatementContext cursorStatementContext = 
mock(CursorStatementContext.class);
@@ -61,7 +62,7 @@ class ShardingCursorTokenGeneratorTest {
     
     @Test
     void assertGenerateSQLToken() {
-        ShardingCursorTokenGenerator generator = new 
ShardingCursorTokenGenerator();
+        ShardingCursorTokenGenerator generator = new 
ShardingCursorTokenGenerator(mock(ShardingRule.class));
         CursorStatementContext statementContext = 
mock(CursorStatementContext.class);
         when(statementContext.getCursorName()).thenReturn(Optional.of(new 
CursorNameSegment(0, 0, new IdentifierValue("t_order_cursor"))));
         SQLToken actual = generator.generateSQLToken(statementContext);
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingIndexTokenGeneratorTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingIndexTokenGeneratorTest.java
index fd082c2a7da..15dce27a5ca 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingIndexTokenGeneratorTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/ShardingIndexTokenGeneratorTest.java
@@ -48,7 +48,7 @@ class ShardingIndexTokenGeneratorTest {
     @Test
     void assertIsGenerateSQLToken() {
         UnknownSQLStatementContext sqlStatementContext = 
mock(UnknownSQLStatementContext.class);
-        ShardingIndexTokenGenerator generator = new 
ShardingIndexTokenGenerator();
+        ShardingIndexTokenGenerator generator = new 
ShardingIndexTokenGenerator(mock(ShardingRule.class));
         assertFalse(generator.isGenerateSQLToken(sqlStatementContext));
         AlterIndexStatementContext alterIndexStatementContext = 
mock(AlterIndexStatementContext.class);
         Collection<IndexSegment> indexSegments = new LinkedList<>();
@@ -69,8 +69,7 @@ class ShardingIndexTokenGeneratorTest {
         
when(alterIndexStatementContext.getIndexes()).thenReturn(Collections.singleton(indexSegment));
         
when(alterIndexStatementContext.getDatabaseType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));
         
when(alterIndexStatementContext.getTablesContext().getSchemaName()).thenReturn(Optional.empty());
-        ShardingIndexTokenGenerator generator = new 
ShardingIndexTokenGenerator();
-        generator.setShardingRule(mock(ShardingRule.class));
+        ShardingIndexTokenGenerator generator = new 
ShardingIndexTokenGenerator(mock(ShardingRule.class));
         generator.setSchemas(Collections.singletonMap("test", 
mock(ShardingSphereSchema.class)));
         Collection<SQLToken> actual = 
generator.generateSQLTokens(alterIndexStatementContext);
         assertThat(actual.size(), is(1));
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/TableTokenGeneratorTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/TableTokenGeneratorTest.java
index 119be4eadda..1394e594439 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/TableTokenGeneratorTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/TableTokenGeneratorTest.java
@@ -50,23 +50,20 @@ class TableTokenGeneratorTest {
     
     @Test
     void assertIsGenerateSQLTokenWhenConfigAllBindingTables() {
-        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator();
         ShardingRule shardingRule = mock(ShardingRule.class);
         Collection<String> logicTableNames = Arrays.asList("t_order", 
"t_order_item");
         
when(shardingRule.getShardingLogicTableNames(logicTableNames)).thenReturn(logicTableNames);
         
when(shardingRule.isAllBindingTables(logicTableNames)).thenReturn(true);
-        generator.setShardingRule(shardingRule);
         SelectStatementContext sqlStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         
when(sqlStatementContext.getTablesContext().getTableNames()).thenReturn(logicTableNames);
-        assertTrue(generator.isGenerateSQLToken(sqlStatementContext));
+        assertTrue(new 
ShardingTableTokenGenerator(shardingRule).isGenerateSQLToken(sqlStatementContext));
     }
     
     @Test
     void assertIsGenerateSQLTokenWhenContainsTableSharding() {
-        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator();
+        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator(mock(ShardingRule.class));
         RouteContext routeContext = mock(RouteContext.class);
         when(routeContext.containsTableSharding()).thenReturn(true);
-        generator.setShardingRule(mock(ShardingRule.class));
         generator.setRouteContext(routeContext);
         SQLStatementContext sqlStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         assertTrue(generator.isGenerateSQLToken(sqlStatementContext));
@@ -76,8 +73,7 @@ class TableTokenGeneratorTest {
     void assertGenerateSQLTokenWhenSQLStatementIsTableAvailable() {
         ShardingRule shardingRule = mock(ShardingRule.class);
         
when(shardingRule.findShardingTable(anyString())).thenReturn(Optional.of(mock(ShardingTable.class)));
-        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator();
-        generator.setShardingRule(shardingRule);
+        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator(shardingRule);
         CreateTableStatementContext sqlStatementContext = 
mock(CreateTableStatementContext.class, RETURNS_DEEP_STUBS);
         
when(sqlStatementContext.getTablesContext().getSimpleTables()).thenReturn(Collections.singletonList(new
 SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("t_order")))));
         Collection<SQLToken> actual = 
generator.generateSQLTokens(sqlStatementContext);
@@ -87,7 +83,7 @@ class TableTokenGeneratorTest {
     
     @Test
     void assertGenerateSQLTokenWhenSQLStatementIsNotTableAvailable() {
-        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator();
+        ShardingTableTokenGenerator generator = new 
ShardingTableTokenGenerator(mock(ShardingRule.class));
         SQLStatementContext sqlStatementContext = 
mock(UnknownSQLStatementContext.class);
         assertThat(generator.generateSQLTokens(sqlStatementContext), 
is(Collections.emptyList()));
     }


Reply via email to