You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by to...@apache.org on 2022/04/14 20:54:02 UTC

[shardingsphere] branch master updated: Refactor RDLStatement to remove optional fields (#16839)

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

totalo 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 ef4fccddbd4 Refactor RDLStatement to remove optional fields (#16839)
ef4fccddbd4 is described below

commit ef4fccddbd425138d7ea929c14a385c066d0370d
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Apr 15 04:53:46 2022 +0800

    Refactor RDLStatement to remove optional fields (#16839)
---
 .../core/common/CommonDistSQLStatementVisitor.java | 32 ++++++++--------------
 .../ImportSchemaConfigurationStatement.java        | 15 ++++++++--
 .../updatable/RefreshTableMetadataStatement.java   | 30 +++++++++++++++++---
 .../rql/show/ShowRulesUsedResourceStatement.java   | 15 +++++++---
 .../context/TransactionContextsBuilderTest.java    |  3 +-
 .../rql/rule/RulesUsedResourceQueryResultSet.java  |  2 +-
 .../ImportSchemaConfigurationHandlerTest.java      |  5 +---
 .../ImportSchemaConfigurationStatementAssert.java  |  3 +-
 8 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
index 027a9cbf5b0..81b86eeda35 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
@@ -150,7 +150,7 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
     
     @Override
     public ASTNode visitShowTableMetadata(final ShowTableMetadataContext ctx) {
-        Collection<String> tableNames = ctx.tableName().stream().map(each -> getIdentifierValue(each)).collect(Collectors.toSet());
+        Collection<String> tableNames = ctx.tableName().stream().map(this::getIdentifierValue).collect(Collectors.toSet());
         return new ShowTableMetadataStatement(tableNames, null == ctx.schemaName() ? null : (SchemaSegment) visit(ctx.schemaName()));
     }
     
@@ -316,8 +316,7 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
     
     @Override
     public ASTNode visitShowSingleTable(final ShowSingleTableContext ctx) {
-        return new ShowSingleTableStatement(null == ctx.table() ? null : getIdentifierValue(ctx.table().tableName()),
-                null == ctx.schemaName() ? null : (SchemaSegment) visit(ctx.schemaName()));
+        return new ShowSingleTableStatement(null == ctx.table() ? null : getIdentifierValue(ctx.table().tableName()), null == ctx.schemaName() ? null : (SchemaSegment) visit(ctx.schemaName()));
     }
     
     @Override
@@ -330,13 +329,6 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
         return new ShowVariableStatement();
     }
     
-    private String getIdentifierValue(final ParseTree context) {
-        if (null == context) {
-            return null;
-        }
-        return new IdentifierValue(context.getText()).getValue();
-    }
-    
     @Override
     public ASTNode visitClearHint(final ClearHintContext ctx) {
         return new ClearHintStatement();
@@ -344,10 +336,8 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
     
     @Override
     public ASTNode visitRefreshTableMetadata(final RefreshTableMetadataContext ctx) {
-        RefreshTableMetadataStatement result = new RefreshTableMetadataStatement();
-        result.setTableName(null == ctx.refreshScope() ? Optional.empty() : Optional.ofNullable(getIdentifierValue(ctx.refreshScope().tableName())));
-        result.setResourceName(null == ctx.refreshScope() ? Optional.empty() : Optional.ofNullable(getIdentifierValue(ctx.refreshScope().resourceName())));
-        return result;
+        return null == ctx.refreshScope() ? new RefreshTableMetadataStatement()
+                : new RefreshTableMetadataStatement(getIdentifierValue(ctx.refreshScope().tableName()), getIdentifierValue(ctx.refreshScope().resourceName()));
     }
     
     @Override
@@ -369,7 +359,7 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
     public ASTNode visitDropTrafficRule(final DropTrafficRuleContext ctx) {
         DropTrafficRuleStatement result = new DropTrafficRuleStatement();
         if (null != ctx.ruleName()) {
-            result.setRuleNames(ctx.ruleName().stream().map(each -> getIdentifierValue(each)).collect(Collectors.toSet()));
+            result.setRuleNames(ctx.ruleName().stream().map(this::getIdentifierValue).collect(Collectors.toSet()));
         }
         result.setContainsIfExistClause(null != ctx.ifExists());
         return result;
@@ -484,9 +474,7 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
     
     @Override
     public ASTNode visitShowRulesUsedResource(final ShowRulesUsedResourceContext ctx) {
-        return new ShowRulesUsedResourceStatement(
-                null == ctx.resourceName() ? Optional.empty() : Optional.of(getIdentifierValue(ctx.resourceName())),
-                null == ctx.schemaName() ? null : (SchemaSegment) visit(ctx.schemaName()));
+        return new ShowRulesUsedResourceStatement(getIdentifierValue(ctx.resourceName()), null == ctx.schemaName() ? null : (SchemaSegment) visit(ctx.schemaName()));
     }
     
     @Override
@@ -506,8 +494,10 @@ public final class CommonDistSQLStatementVisitor extends CommonDistSQLStatementB
     
     @Override
     public ASTNode visitImportSchemaConfiguration(final ImportSchemaConfigurationContext ctx) {
-        ImportSchemaConfigurationStatement result = new ImportSchemaConfigurationStatement();
-        result.setFilePath(Optional.ofNullable(getIdentifierValue(ctx.filePath())));
-        return result;
+        return new ImportSchemaConfigurationStatement(getIdentifierValue(ctx.filePath()));
+    }
+    
+    private String getIdentifierValue(final ParseTree context) {
+        return null == context ? null : new IdentifierValue(context.getText()).getValue();
     }
 }
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/ImportSchemaConfigurationStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/ImportSchemaConfigurationStatement.java
index 5bdf2fd4efb..7c752f05fc4 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/ImportSchemaConfigurationStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/ImportSchemaConfigurationStatement.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.distsql.parser.statement.ral.common.updatable;
 
 import lombok.Getter;
-import lombok.Setter;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
 
 import java.util.Optional;
@@ -26,9 +26,18 @@ import java.util.Optional;
 /**
  * Import schema configuration statement.
  */
-@Setter
+@RequiredArgsConstructor
 @Getter
 public final class ImportSchemaConfigurationStatement extends UpdatableRALStatement {
     
-    private Optional<String> filePath;
+    private final String filePath;
+    
+    /**
+     * Get file path.
+     * 
+     * @return file path
+     */
+    public Optional<String> getFilePath() {
+        return Optional.ofNullable(filePath);
+    }
 }
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/RefreshTableMetadataStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/RefreshTableMetadataStatement.java
index 56d6995aa6c..93d06fc83d4 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/RefreshTableMetadataStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/common/updatable/RefreshTableMetadataStatement.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.distsql.parser.statement.ral.common.updatable;
 
 import lombok.Getter;
-import lombok.Setter;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
 
 import java.util.Optional;
@@ -26,11 +26,33 @@ import java.util.Optional;
 /**
  * Refresh table metadata statement.
  */
-@Setter
+@RequiredArgsConstructor
 @Getter
 public final class RefreshTableMetadataStatement extends UpdatableRALStatement {
     
-    private Optional<String> tableName;
+    private final String tableName;
     
-    private Optional<String> resourceName;
+    private final String resourceName;
+    
+    public RefreshTableMetadataStatement() {
+        this(null, null);
+    }
+    
+    /**
+     * Get table name.
+     * 
+     * @return table name
+     */
+    public Optional<String> getTableName() {
+        return Optional.ofNullable(tableName);
+    }
+    
+    /**
+     * Get resource name.
+     *
+     * @return resource name
+     */
+    public Optional<String> getResourceName() {
+        return Optional.ofNullable(resourceName);
+    }
 }
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java
index f8cc182960a..99c554e6d4c 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.distsql.parser.statement.rql.show;
 
-import lombok.Getter;
 import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
 
@@ -26,13 +25,21 @@ import java.util.Optional;
 /**
  * Show rules used resource statement.
  */
-@Getter
 public final class ShowRulesUsedResourceStatement extends ShowRulesStatement implements ResourceSubjectSupplier {
     
-    private final Optional<String> resourceName;
+    private final String resourceName;
     
-    public ShowRulesUsedResourceStatement(final Optional<String> resourceName, final SchemaSegment schema) {
+    public ShowRulesUsedResourceStatement(final String resourceName, final SchemaSegment schema) {
         super(schema);
         this.resourceName = resourceName;
     }
+    
+    /**
+     * Get resource name.
+     * 
+     * @return resource name
+     */
+    public Optional<String> getResourceName() {
+        return Optional.ofNullable(resourceName);
+    }
 }
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
index 77f14a06cc3..85eeaf7d0fa 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
@@ -47,8 +47,7 @@ public final class TransactionContextsBuilderTest {
     
     @Test
     public void assertNewInstanceWithEmptyEngines() {
-        TransactionContexts transactionContexts = new TransactionContextsBuilder(Collections.emptyMap(), Collections.emptyList()).build();
-        assertTrue(transactionContexts.getEngines().isEmpty());
+        assertTrue(new TransactionContextsBuilder(Collections.emptyMap(), Collections.emptyList()).build().getEngines().isEmpty());
     }
     
     @Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/RulesUsedResourceQueryResultSet.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/RulesUsedResourceQueryResultSet.java
index 5eeb318f6f4..ed327fde7f2 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/RulesUsedResourceQueryResultSet.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/RulesUsedResourceQueryResultSet.java
@@ -79,7 +79,7 @@ public final class RulesUsedResourceQueryResultSet implements DistSQLResultSet {
     }
     
     private void getRulesConfig(final Collection<RuleConfiguration> ruleConfigurations, final String resourceName, final List<Collection<Object>> result) {
-        ruleConfigurations.stream().forEach(each -> {
+        ruleConfigurations.forEach(each -> {
             getRulesConfigForSharding(each, result);
             getRulesConfigForReadwriteSplitting(each, resourceName, result);
             getRulesConfigForDBDiscovery(each, resourceName, result);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportSchemaConfigurationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportSchemaConfigurationHandlerTest.java
index 5bb195bdbb5..2352a27e4f9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportSchemaConfigurationHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportSchemaConfigurationHandlerTest.java
@@ -49,7 +49,6 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -171,9 +170,7 @@ public final class ImportSchemaConfigurationHandlerTest {
     }
     
     private ImportSchemaConfigurationStatement createSqlStatement(final String importFilePath) {
-        ImportSchemaConfigurationStatement result = new ImportSchemaConfigurationStatement();
-        result.setFilePath(Optional.of(Objects.requireNonNull(ImportSchemaConfigurationHandlerTest.class.getResource(importFilePath)).getPath()));
-        return result;
+        return new ImportSchemaConfigurationStatement(Objects.requireNonNull(ImportSchemaConfigurationHandlerTest.class.getResource(importFilePath)).getPath());
     }
     
     private ConnectionSession mockConnectionSession() {
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/common/updatable/ImportSchemaConfigurationStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/common/updatable/ImportSchemaConfigurationStatementAssert.java
index 7cb1746552d..1415ccad91c 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/common/updatable/ImportSchemaConfigurationStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/common/updatable/ImportSchemaConfigurationStatementAssert.java
@@ -27,6 +27,7 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 /**
  * Import schema configuration statement assert.
@@ -47,7 +48,7 @@ public final class ImportSchemaConfigurationStatementAssert {
             assertNull(assertContext.getText("Actual statement should not exist."), actual);
         } else {
             assertNotNull(assertContext.getText("Actual statement should exist."), actual);
-            assertNotNull(actual.getFilePath().get());
+            assertTrue(actual.getFilePath().isPresent());
             assertNotNull(expected.getFilePath());
             assertThat(actual.getFilePath().get(), is(expected.getFilePath()));
         }