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 9b0ae48a78b Refactor ResultDecoratorEngine (#33605)
9b0ae48a78b is described below

commit 9b0ae48a78bebaf054fc73f27a8866443b64de37
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Nov 10 00:40:58 2024 +0800

    Refactor ResultDecoratorEngine (#33605)
    
    * Refactor MaskDQLResultDecorator
    
    * Refactor ResultDecoratorEngine
    
    * Refactor ResultDecoratorEngine
    
    * Refactor ResultDecoratorEngine
    
    * Refactor ResultDecoratorEngine
---
 .../encrypt/merge/EncryptResultDecoratorEngine.java            |  4 ++--
 .../encrypt/merge/dal/EncryptDALResultDecorator.java           |  9 +--------
 .../encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java | 10 +++++-----
 .../merge/dal/show/EncryptShowCreateTableMergedResult.java     |  9 ++++-----
 .../encrypt/merge/EncryptResultDecoratorEngineTest.java        |  6 +++---
 .../shardingsphere/mask/merge/MaskResultDecoratorEngine.java   |  6 +++---
 .../shardingsphere/mask/merge/dql/MaskDQLResultDecorator.java  |  6 ++----
 .../mask/merge/MaskResultDecoratorEngineTest.java              |  4 ++--
 .../mask/merge/dql/MaskDQLResultDecoratorTest.java             |  4 ++--
 .../org/apache/shardingsphere/infra/merge/MergeEngine.java     |  9 ++++-----
 .../infra/merge/engine/decorator/ResultDecoratorEngine.java    |  3 +--
 .../merge/fixture/decorator/ResultDecoratorEngineFixture.java  |  4 ++--
 12 files changed, 31 insertions(+), 43 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
index 9dd12b54067..ee7e90e909d 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
@@ -38,8 +38,8 @@ import java.util.Optional;
 public final class EncryptResultDecoratorEngine implements 
ResultDecoratorEngine<EncryptRule> {
     
     @Override
-    public Optional<ResultDecorator<EncryptRule>> newInstance(final 
ShardingSphereMetaData metaData, final ShardingSphereDatabase database,
-                                                              final 
EncryptRule encryptRule, final ConfigurationProperties props, final 
SQLStatementContext sqlStatementContext) {
+    public Optional<ResultDecorator<EncryptRule>> newInstance(final 
ShardingSphereMetaData metaData,
+                                                              final 
ShardingSphereDatabase database, final ConfigurationProperties props, final 
SQLStatementContext sqlStatementContext) {
         if (sqlStatementContext instanceof SelectStatementContext) {
             return Optional.of(new EncryptDQLResultDecorator(database, 
metaData, (SelectStatementContext) sqlStatementContext));
         }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
index 167fdb45214..c2b8ba193d9 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
@@ -42,14 +42,7 @@ public final class EncryptDALResultDecorator implements 
ResultDecorator<EncryptR
     
     @Override
     public MergedResult decorate(final QueryResult queryResult, final 
SQLStatementContext sqlStatementContext, final EncryptRule rule) {
-        SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
-        if (sqlStatement instanceof MySQLExplainStatement || sqlStatement 
instanceof MySQLShowColumnsStatement) {
-            return new EncryptShowColumnsMergedResult(new 
TransparentMergedResult(queryResult), sqlStatementContext, rule);
-        }
-        if (sqlStatement instanceof MySQLShowCreateTableStatement) {
-            return new EncryptShowCreateTableMergedResult(globalRuleMetaData, 
new TransparentMergedResult(queryResult), sqlStatementContext, rule);
-        }
-        return new TransparentMergedResult(queryResult);
+        return decorate(new TransparentMergedResult(queryResult), 
sqlStatementContext, rule);
     }
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
index 652950ea70b..8d581d36c1f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
@@ -43,20 +43,20 @@ public final class EncryptShowColumnsMergedResult 
implements MergedResult {
     
     private final MergedResult mergedResult;
     
-    private final EncryptRule encryptRule;
+    private final EncryptRule rule;
     
-    public EncryptShowColumnsMergedResult(final MergedResult mergedResult, 
final SQLStatementContext sqlStatementContext, final EncryptRule encryptRule) {
+    public EncryptShowColumnsMergedResult(final MergedResult mergedResult, 
final SQLStatementContext sqlStatementContext, final EncryptRule rule) {
         ShardingSpherePreconditions.checkState(sqlStatementContext instanceof 
TableAvailable && 1 == ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().size(),
                 () -> new UnsupportedEncryptSQLException("SHOW COLUMNS FOR 
MULTI TABLES"));
         tableName = ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue();
         this.mergedResult = mergedResult;
-        this.encryptRule = encryptRule;
+        this.rule = rule;
     }
     
     @Override
     public boolean next() throws SQLException {
         boolean hasNext = mergedResult.next();
-        Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
+        Optional<EncryptTable> encryptTable = rule.findEncryptTable(tableName);
         if (hasNext && !encryptTable.isPresent()) {
             return true;
         }
@@ -82,7 +82,7 @@ public final class EncryptShowColumnsMergedResult implements 
MergedResult {
     public Object getValue(final int columnIndex, final Class<?> type) throws 
SQLException {
         if (COLUMN_FIELD_INDEX == columnIndex) {
             String columnName = mergedResult.getValue(COLUMN_FIELD_INDEX, 
type).toString();
-            Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
+            Optional<EncryptTable> encryptTable = 
rule.findEncryptTable(tableName);
             if (!encryptTable.isPresent()) {
                 return columnName;
             }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
index bdada6bdefe..89de864862e 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
@@ -53,17 +53,16 @@ public final class EncryptShowCreateTableMergedResult 
implements MergedResult {
     
     private final String tableName;
     
-    private final EncryptRule encryptRule;
+    private final EncryptRule rule;
     
     private final SQLParserEngine sqlParserEngine;
     
-    public EncryptShowCreateTableMergedResult(final RuleMetaData 
globalRuleMetaData, final MergedResult mergedResult,
-                                              final SQLStatementContext 
sqlStatementContext, final EncryptRule encryptRule) {
+    public EncryptShowCreateTableMergedResult(final RuleMetaData 
globalRuleMetaData, final MergedResult mergedResult, final SQLStatementContext 
sqlStatementContext, final EncryptRule rule) {
         ShardingSpherePreconditions.checkState(sqlStatementContext instanceof 
TableAvailable && 1 == ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().size(),
                 () -> new UnsupportedEncryptSQLException("SHOW CREATE TABLE 
FOR MULTI TABLE"));
         this.mergedResult = mergedResult;
         tableName = ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue();
-        this.encryptRule = encryptRule;
+        this.rule = rule;
         sqlParserEngine = 
globalRuleMetaData.getSingleRule(SQLParserRule.class).getSQLParserEngine(sqlStatementContext.getDatabaseType());
     }
     
@@ -76,7 +75,7 @@ public final class EncryptShowCreateTableMergedResult 
implements MergedResult {
     public Object getValue(final int columnIndex, final Class<?> type) throws 
SQLException {
         if (CREATE_TABLE_DEFINITION_INDEX == columnIndex) {
             String result = 
mergedResult.getValue(CREATE_TABLE_DEFINITION_INDEX, type).toString();
-            Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
+            Optional<EncryptTable> encryptTable = 
rule.findEncryptTable(tableName);
             if (!encryptTable.isPresent() || !result.contains("(")) {
                 return result;
             }
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
index 9254e1dd623..182960b7df0 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
@@ -60,7 +60,7 @@ class EncryptResultDecoratorEngineTest {
     void assertNewInstanceWithSelectStatement() {
         EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) 
OrderedSPILoader.getServices(ResultProcessEngine.class, 
Collections.singleton(rule)).get(rule);
         Optional<ResultDecorator<EncryptRule>> actual =
-                engine.newInstance(mock(ShardingSphereMetaData.class), 
database, rule, mock(ConfigurationProperties.class), 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS));
+                engine.newInstance(mock(ShardingSphereMetaData.class), 
database, mock(ConfigurationProperties.class), 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS));
         assertTrue(actual.isPresent());
         assertThat(actual.get(), instanceOf(EncryptDQLResultDecorator.class));
     }
@@ -70,7 +70,7 @@ class EncryptResultDecoratorEngineTest {
         SQLStatementContext sqlStatementContext = 
mock(ExplainStatementContext.class);
         
when(sqlStatementContext.getSqlStatement()).thenReturn(mock(MySQLExplainStatement.class));
         EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) 
OrderedSPILoader.getServices(ResultProcessEngine.class, 
Collections.singleton(rule)).get(rule);
-        Optional<ResultDecorator<EncryptRule>> actual = 
engine.newInstance(mock(ShardingSphereMetaData.class), database, rule, 
mock(ConfigurationProperties.class), sqlStatementContext);
+        Optional<ResultDecorator<EncryptRule>> actual = 
engine.newInstance(mock(ShardingSphereMetaData.class), database, 
mock(ConfigurationProperties.class), sqlStatementContext);
         assertTrue(actual.isPresent());
         assertThat(actual.get(), instanceOf(EncryptDALResultDecorator.class));
     }
@@ -78,6 +78,6 @@ class EncryptResultDecoratorEngineTest {
     @Test
     void assertNewInstanceWithOtherStatement() {
         EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) 
OrderedSPILoader.getServices(ResultProcessEngine.class, 
Collections.singleton(rule)).get(rule);
-        assertFalse(engine.newInstance(mock(ShardingSphereMetaData.class), 
database, rule, mock(ConfigurationProperties.class), 
mock(InsertStatementContext.class)).isPresent());
+        assertFalse(engine.newInstance(mock(ShardingSphereMetaData.class), 
database, mock(ConfigurationProperties.class), 
mock(InsertStatementContext.class)).isPresent());
     }
 }
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngine.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngine.java
index 12f2dadbde7..65cc2486d8e 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngine.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngine.java
@@ -36,9 +36,9 @@ import java.util.Optional;
 public final class MaskResultDecoratorEngine implements 
ResultDecoratorEngine<MaskRule> {
     
     @Override
-    public Optional<ResultDecorator<MaskRule>> newInstance(final 
ShardingSphereMetaData metaData, final ShardingSphereDatabase database,
-                                                           final MaskRule 
maskRule, final ConfigurationProperties props, final SQLStatementContext 
sqlStatementContext) {
-        return sqlStatementContext instanceof SelectStatementContext ? 
Optional.of(new MaskDQLResultDecorator(maskRule, (SelectStatementContext) 
sqlStatementContext)) : Optional.empty();
+    public Optional<ResultDecorator<MaskRule>> newInstance(final 
ShardingSphereMetaData metaData,
+                                                           final 
ShardingSphereDatabase database, final ConfigurationProperties props, final 
SQLStatementContext sqlStatementContext) {
+        return sqlStatementContext instanceof SelectStatementContext ? 
Optional.of(new MaskDQLResultDecorator((SelectStatementContext) 
sqlStatementContext)) : Optional.empty();
     }
     
     @Override
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecorator.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecorator.java
index ecb55cd2680..4a660c35691 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecorator.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecorator.java
@@ -32,17 +32,15 @@ import org.apache.shardingsphere.mask.rule.MaskRule;
 @RequiredArgsConstructor
 public final class MaskDQLResultDecorator implements ResultDecorator<MaskRule> 
{
     
-    private final MaskRule maskRule;
-    
     private final SelectStatementContext selectStatementContext;
     
     @Override
     public MergedResult decorate(final QueryResult queryResult, final 
SQLStatementContext sqlStatementContext, final MaskRule rule) {
-        return new MaskMergedResult(maskRule, selectStatementContext, new 
TransparentMergedResult(queryResult));
+        return decorate(new TransparentMergedResult(queryResult), 
sqlStatementContext, rule);
     }
     
     @Override
     public MergedResult decorate(final MergedResult mergedResult, final 
SQLStatementContext sqlStatementContext, final MaskRule rule) {
-        return new MaskMergedResult(maskRule, selectStatementContext, 
mergedResult);
+        return new MaskMergedResult(rule, selectStatementContext, 
mergedResult);
     }
 }
diff --git 
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngineTest.java
 
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngineTest.java
index cac3b85b121..99356a017d5 100644
--- 
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngineTest.java
+++ 
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/MaskResultDecoratorEngineTest.java
@@ -55,7 +55,7 @@ class MaskResultDecoratorEngineTest {
     void assertNewInstanceWithSelectStatement() {
         MaskResultDecoratorEngine engine = (MaskResultDecoratorEngine) 
OrderedSPILoader.getServices(ResultProcessEngine.class, 
Collections.singleton(rule)).get(rule);
         Optional<ResultDecorator<MaskRule>> actual =
-                engine.newInstance(mock(ShardingSphereMetaData.class), 
database, rule, mock(ConfigurationProperties.class), 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS));
+                engine.newInstance(mock(ShardingSphereMetaData.class), 
database, mock(ConfigurationProperties.class), 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS));
         assertTrue(actual.isPresent());
         assertThat(actual.get(), instanceOf(MaskDQLResultDecorator.class));
     }
@@ -63,6 +63,6 @@ class MaskResultDecoratorEngineTest {
     @Test
     void assertNewInstanceWithOtherStatement() {
         MaskResultDecoratorEngine engine = (MaskResultDecoratorEngine) 
OrderedSPILoader.getServices(ResultProcessEngine.class, 
Collections.singleton(rule)).get(rule);
-        assertFalse(engine.newInstance(mock(ShardingSphereMetaData.class), 
database, rule, mock(ConfigurationProperties.class), 
mock(InsertStatementContext.class)).isPresent());
+        assertFalse(engine.newInstance(mock(ShardingSphereMetaData.class), 
database, mock(ConfigurationProperties.class), 
mock(InsertStatementContext.class)).isPresent());
     }
 }
diff --git 
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecoratorTest.java
 
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecoratorTest.java
index 943f15db615..f924e0d8f27 100644
--- 
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecoratorTest.java
+++ 
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/merge/dql/MaskDQLResultDecoratorTest.java
@@ -36,7 +36,7 @@ class MaskDQLResultDecoratorTest {
     void assertDecorateQueryResult() throws SQLException {
         QueryResult queryResult = mock(QueryResult.class);
         when(queryResult.next()).thenReturn(true);
-        MaskDQLResultDecorator decorator = new 
MaskDQLResultDecorator(mock(MaskRule.class), 
mock(SelectStatementContext.class));
+        MaskDQLResultDecorator decorator = new 
MaskDQLResultDecorator(mock(SelectStatementContext.class));
         MergedResult actual = decorator.decorate(queryResult, 
mock(SQLStatementContext.class), mock(MaskRule.class));
         assertTrue(actual.next());
     }
@@ -45,7 +45,7 @@ class MaskDQLResultDecoratorTest {
     void assertDecorateMergedResult() throws SQLException {
         MergedResult mergedResult = mock(MergedResult.class);
         when(mergedResult.next()).thenReturn(true);
-        MaskDQLResultDecorator decorator = new 
MaskDQLResultDecorator(mock(MaskRule.class), 
mock(SelectStatementContext.class));
+        MaskDQLResultDecorator decorator = new 
MaskDQLResultDecorator(mock(SelectStatementContext.class));
         MergedResult actual = decorator.decorate(mergedResult, 
mock(SQLStatementContext.class), mock(MaskRule.class));
         assertTrue(actual.next());
     }
diff --git 
a/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java
 
b/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java
index f410b4240c9..185a6bfc27a 100644
--- 
a/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java
+++ 
b/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java
@@ -96,7 +96,7 @@ public final class MergeEngine {
         MergedResult result = null;
         for (Entry<ShardingSphereRule, ResultProcessEngine> entry : 
engines.entrySet()) {
             if (entry.getValue() instanceof ResultDecoratorEngine) {
-                ResultDecorator resultDecorator = 
getResultDecorator(sqlStatementContext, entry);
+                ResultDecorator resultDecorator = 
getResultDecorator(sqlStatementContext, entry.getValue());
                 result = null == result ? 
resultDecorator.decorate(mergedResult, sqlStatementContext, entry.getKey()) : 
resultDecorator.decorate(result, sqlStatementContext, entry.getKey());
             }
         }
@@ -108,7 +108,7 @@ public final class MergeEngine {
         MergedResult result = null;
         for (Entry<ShardingSphereRule, ResultProcessEngine> entry : 
engines.entrySet()) {
             if (entry.getValue() instanceof ResultDecoratorEngine) {
-                ResultDecorator resultDecorator = 
getResultDecorator(sqlStatementContext, entry);
+                ResultDecorator resultDecorator = 
getResultDecorator(sqlStatementContext, entry.getValue());
                 result = null == result ? 
resultDecorator.decorate(queryResult, sqlStatementContext, entry.getKey()) : 
resultDecorator.decorate(result, sqlStatementContext, entry.getKey());
             }
         }
@@ -116,8 +116,7 @@ public final class MergeEngine {
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
-    private ResultDecorator getResultDecorator(final SQLStatementContext 
sqlStatementContext, final Entry<ShardingSphereRule, ResultProcessEngine> 
entry) {
-        return (ResultDecorator) ((ResultDecoratorEngine) 
entry.getValue()).newInstance(metaData, database, entry.getKey(), props, 
sqlStatementContext)
-                .orElseGet(TransparentResultDecorator::new);
+    private ResultDecorator getResultDecorator(final SQLStatementContext 
sqlStatementContext, final ResultProcessEngine resultProcessEngine) {
+        return (ResultDecorator) ((ResultDecoratorEngine) 
resultProcessEngine).newInstance(metaData, database, props, 
sqlStatementContext).orElseGet(TransparentResultDecorator::new);
     }
 }
diff --git 
a/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java
 
b/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java
index b2a1d282eb6..71c17538d77 100644
--- 
a/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java
+++ 
b/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java
@@ -38,10 +38,9 @@ public interface ResultDecoratorEngine<T extends 
ShardingSphereRule> extends Res
      *
      * @param metaData meta data
      * @param database database
-     * @param rule rule
      * @param props configuration properties
      * @param sqlStatementContext SQL statement context
      * @return created instance
      */
-    Optional<ResultDecorator<T>> newInstance(ShardingSphereMetaData metaData, 
ShardingSphereDatabase database, T rule, ConfigurationProperties props, 
SQLStatementContext sqlStatementContext);
+    Optional<ResultDecorator<T>> newInstance(ShardingSphereMetaData metaData, 
ShardingSphereDatabase database, ConfigurationProperties props, 
SQLStatementContext sqlStatementContext);
 }
diff --git 
a/infra/merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java
 
b/infra/merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java
index 7c0296f9cc1..7fe0065e3b7 100644
--- 
a/infra/merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java
+++ 
b/infra/merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java
@@ -30,8 +30,8 @@ import java.util.Optional;
 public final class ResultDecoratorEngineFixture implements 
ResultDecoratorEngine<DecoratorRuleFixture> {
     
     @Override
-    public Optional<ResultDecorator<DecoratorRuleFixture>> newInstance(final 
ShardingSphereMetaData metaData, final ShardingSphereDatabase database,
-                                                                       final 
DecoratorRuleFixture rule, final ConfigurationProperties props, final 
SQLStatementContext sqlStatementContext) {
+    public Optional<ResultDecorator<DecoratorRuleFixture>> newInstance(final 
ShardingSphereMetaData metaData,
+                                                                       final 
ShardingSphereDatabase database, final ConfigurationProperties props, final 
SQLStatementContext sqlStatementContext) {
         return Optional.of(new ResultDecoratorFixture());
     }
     

Reply via email to