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 472b9bd5320 Add generic type on StorageUnitDefinitionProcessor (#30034)
472b9bd5320 is described below

commit 472b9bd5320a4ca519d3395cd3dfc33e88b0cd81
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Feb 7 10:59:35 2024 +0800

    Add generic type on StorageUnitDefinitionProcessor (#30034)
---
 .../handler/update/StorageUnitBroadcastDefinitionProcessor.java     | 2 +-
 .../type/update/rdl/resource/StorageUnitDefinitionProcessor.java    | 6 ++++--
 .../handler/update/StorageUnitSingleDefinitionProcessor.java        | 2 +-
 .../handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java | 1 +
 .../rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java | 5 ++---
 5 files changed, 9 insertions(+), 7 deletions(-)

diff --git 
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
 
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
index 3c0f04ad040..41f4c46a0b2 100644
--- 
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
+++ 
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.Unregi
 /**
  * Storage unit definition processor for broadcast rule.
  */
-public final class StorageUnitBroadcastDefinitionProcessor implements 
StorageUnitDefinitionProcessor {
+public final class StorageUnitBroadcastDefinitionProcessor implements 
StorageUnitDefinitionProcessor<BroadcastRule> {
     
     @Override
     public boolean ignoreUsageCheckOnUnregister(final 
UnregisterStorageUnitStatement sqlStatement) {
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
index 2f8447b0e49..8266e3c37e8 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
@@ -23,9 +23,11 @@ import 
org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
 
 /**
  * Storage unit definition processor.
+ * 
+ * @param <T> type of rule
  */
 @SingletonSPI
-public interface StorageUnitDefinitionProcessor {
+public interface StorageUnitDefinitionProcessor<T extends ShardingSphereRule> {
     
     /**
      * Whether to ignore rule usage checking when unregister storage unit.
@@ -40,5 +42,5 @@ public interface StorageUnitDefinitionProcessor {
      * 
      * @return rule
      */
-    Class<? extends ShardingSphereRule> getRule();
+    Class<T> getRule();
 }
diff --git 
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
 
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
index 73a7631821f..ff336704176 100644
--- 
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
+++ 
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.single.rule.SingleRule;
 /**
  * Storage unit definition processor for single rule.
  */
-public final class StorageUnitSingleDefinitionProcessor implements 
StorageUnitDefinitionProcessor {
+public final class StorageUnitSingleDefinitionProcessor implements 
StorageUnitDefinitionProcessor<SingleRule> {
     
     @Override
     public boolean ignoreUsageCheckOnUnregister(final 
UnregisterStorageUnitStatement sqlStatement) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
index 395cad481b5..dec03eeb9e8 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
@@ -83,6 +83,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
         checkInUsedIgnoreTables(new HashSet<>(inUsedStorageUnitNames), 
inUsedStorageUnits, ignoreShardingSphereRules);
     }
     
+    @SuppressWarnings("unchecked")
     private Collection<Class<? extends ShardingSphereRule>> 
getIgnoreShardingSphereRules(final UnregisterStorageUnitStatement sqlStatement) 
{
         return 
ShardingSphereServiceLoader.getServiceInstances(StorageUnitDefinitionProcessor.class).stream()
                 .filter(each -> 
each.ignoreUsageCheckOnUnregister(sqlStatement)).map(StorageUnitDefinitionProcessor::getRule).collect(Collectors.toList());
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
index d081afe99f9..cf144586573 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
@@ -19,9 +19,8 @@ package 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.fix
 
 import 
org.apache.shardingsphere.distsql.handler.type.update.rdl.resource.StorageUnitDefinitionProcessor;
 import 
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.UnregisterStorageUnitStatement;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 
-public final class FixtureStorageUnitDefinitionProcessor implements 
StorageUnitDefinitionProcessor {
+public final class FixtureStorageUnitDefinitionProcessor implements 
StorageUnitDefinitionProcessor<FixtureUnregisterStorageUnitRule> {
     
     @Override
     public boolean ignoreUsageCheckOnUnregister(final 
UnregisterStorageUnitStatement sqlStatement) {
@@ -29,7 +28,7 @@ public final class FixtureStorageUnitDefinitionProcessor 
implements StorageUnitD
     }
     
     @Override
-    public Class<? extends ShardingSphereRule> getRule() {
+    public Class<FixtureUnregisterStorageUnitRule> getRule() {
         return FixtureUnregisterStorageUnitRule.class;
     }
 }

Reply via email to