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

chengzhang 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 1d10cdd1168 Add ShardingSpherePreconditions.checkMustEmpty (#30936)
1d10cdd1168 is described below

commit 1d10cdd11683bc8c3a490c197ad7f5434a4caf36
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Apr 17 13:41:09 2024 +0800

    Add ShardingSpherePreconditions.checkMustEmpty (#30936)
    
    * Add ShardingSpherePreconditions.checkMustEmpty
    
    * Add ShardingSpherePreconditions.checkMustEmpty
    
    * Add ShardingSpherePreconditions.checkMustEmpty
---
 .../update/CreateBroadcastTableRuleExecutor.java   |  4 +-
 .../update/DropBroadcastTableRuleExecutor.java     |  2 +-
 .../handler/update/CreateEncryptRuleExecutor.java  |  4 +-
 .../handler/update/DropEncryptRuleExecutor.java    |  2 +-
 .../GenericTableRandomReplaceAlgorithm.java        |  4 +-
 .../handler/update/AlterMaskRuleExecutor.java      |  2 +-
 .../handler/update/CreateMaskRuleExecutor.java     |  2 +-
 .../handler/update/DropMaskRuleExecutor.java       |  2 +-
 ...plittingDataSourceRuleConfigurationChecker.java |  2 +-
 ...riteSplittingStaticDataSourceRuleAttribute.java |  3 +-
 .../ReadwriteSplittingRuleStatementChecker.java    | 10 ++--
 .../update/DropReadwriteSplittingRuleExecutor.java |  4 +-
 .../checker/ShadowRuleConfigurationChecker.java    |  2 +-
 .../checker/ShadowRuleStatementChecker.java        | 10 ++--
 .../CreateDefaultShadowAlgorithmExecutor.java      |  2 +-
 .../handler/update/CreateShadowRuleExecutor.java   |  2 +-
 ...MLShardingConditionsShardingAuditAlgorithm.java |  2 +-
 .../range/BoundaryBasedRangeShardingAlgorithm.java |  2 +-
 .../ShardingSchemaTableAggregationReviser.java     |  2 +-
 .../standard/ShardingStandardRoutingEngine.java    |  2 +-
 .../impl/ShardingDropTableStatementValidator.java  |  2 +-
 .../checker/ShardingTableRuleStatementChecker.java |  8 +--
 .../AlterShardingTableReferenceRuleExecutor.java   |  6 +--
 .../CreateShardingTableReferenceRuleExecutor.java  |  6 +--
 .../update/DropShardingAlgorithmExecutor.java      |  5 +-
 .../update/DropShardingAuditorExecutor.java        |  5 +-
 .../update/DropShardingKeyGeneratorExecutor.java   |  4 +-
 .../update/DropShardingTableReferenceExecutor.java |  4 +-
 .../update/DropShardingTableRuleExecutor.java      |  2 +-
 .../weight/WeightLoadBalanceAlgorithm.java         |  2 +-
 .../statement/dml/SelectStatementContext.java      |  2 +-
 .../rule/checker/RuleConfigurationCheckEngine.java |  4 +-
 .../database/core/type/DatabaseTypeFactory.java    |  2 +-
 .../rdl/resource/AlterStorageUnitExecutor.java     |  6 +--
 .../rdl/resource/RegisterStorageUnitExecutor.java  |  4 +-
 .../resource/UnregisterStorageUnitExecutor.java    |  6 +--
 .../DistSQLDataSourcePoolPropertiesValidator.java  |  2 +-
 .../core/ShardingSpherePreconditions.java          | 58 ++++++++++++++++++++++
 .../core/ShardingSpherePreconditionsTest.java      | 47 ++++++++++++++++--
 .../pipeline/cdc/handler/CDCBackendHandler.java    |  4 +-
 .../scenario/migration/api/MigrationJobAPI.java    |  6 +--
 .../handler/update/UnloadSingleTableExecutor.java  |  2 +-
 .../handler/update/AlterTrafficRuleExecutor.java   |  2 +-
 .../cluster/lock/impl/DefaultDistributedLock.java  |  2 +-
 .../checker/YamlProxyConfigurationChecker.java     |  2 +-
 .../updatable/RefreshTableMetaDataExecutor.java    |  2 +-
 46 files changed, 178 insertions(+), 82 deletions(-)

diff --git 
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutor.java
 
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutor.java
index 755bb3c1f85..bb6200c68c3 100644
--- 
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutor.java
+++ 
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutor.java
@@ -43,7 +43,7 @@ public final class CreateBroadcastTableRuleExecutor 
implements DatabaseRuleCreat
     
     @Override
     public void checkBeforeUpdate(final CreateBroadcastTableRuleStatement 
sqlStatement) {
-        
ShardingSpherePreconditions.checkState(!database.getResourceMetaData().getStorageUnits().isEmpty(),
 () -> new EmptyStorageUnitException(database.getName()));
+        
ShardingSpherePreconditions.checkNotEmpty(database.getResourceMetaData().getStorageUnits(),
 () -> new EmptyStorageUnitException(database.getName()));
         if (!sqlStatement.isIfNotExists()) {
             checkDuplicate(sqlStatement);
         }
@@ -51,7 +51,7 @@ public final class CreateBroadcastTableRuleExecutor 
implements DatabaseRuleCreat
     
     private void checkDuplicate(final CreateBroadcastTableRuleStatement 
sqlStatement) {
         Collection<String> duplicatedRuleNames = 
getDuplicatedRuleNames(sqlStatement);
-        ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), 
() -> new DuplicateRuleException("Broadcast", sqlStatement.getTables()));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () -> 
new DuplicateRuleException("Broadcast", sqlStatement.getTables()));
     }
     
     private Collection<String> getDuplicatedRuleNames(final 
CreateBroadcastTableRuleStatement sqlStatement) {
diff --git 
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutor.java
 
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutor.java
index c2fde17d87f..8fe86869411 100644
--- 
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutor.java
+++ 
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutor.java
@@ -54,7 +54,7 @@ public final class DropBroadcastTableRuleExecutor implements 
DatabaseRuleDropExe
     private void checkBroadcastTableRuleExist(final 
DropBroadcastTableRuleStatement sqlStatement) {
         Collection<String> currentRules = new 
CaseInsensitiveSet<>(rule.getConfiguration().getTables());
         Collection<String> notExistedRules = 
sqlStatement.getTables().stream().filter(each -> 
!currentRules.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedRules.isEmpty(), () 
-> new MissingRequiredRuleException("Broadcast", database.getName(), 
notExistedRules));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedRules, () -> new 
MissingRequiredRuleException("Broadcast", database.getName(), notExistedRules));
     }
     
     @Override
diff --git 
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutor.java
 
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutor.java
index d6174110b87..a365dd513db 100644
--- 
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutor.java
+++ 
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutor.java
@@ -65,7 +65,7 @@ public final class CreateEncryptRuleExecutor implements 
DatabaseRuleCreateExecut
     
     private void checkDuplicateRuleNames(final CreateEncryptRuleStatement 
sqlStatement) {
         Collection<String> duplicatedRuleNames = 
getDuplicatedRuleNames(sqlStatement);
-        ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), 
() -> new DuplicateRuleException("encrypt", database.getName(), 
duplicatedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () -> 
new DuplicateRuleException("encrypt", database.getName(), duplicatedRuleNames));
     }
     
     private Collection<String> getDuplicatedRuleNames(final 
CreateEncryptRuleStatement sqlStatement) {
@@ -138,7 +138,7 @@ public final class CreateEncryptRuleExecutor implements 
DatabaseRuleCreateExecut
     }
     
     private void checkDataSources() {
-        
ShardingSpherePreconditions.checkState(!database.getResourceMetaData().getStorageUnits().isEmpty(),
 () -> new EmptyStorageUnitException(database.getName()));
+        
ShardingSpherePreconditions.checkNotEmpty(database.getResourceMetaData().getStorageUnits(),
 () -> new EmptyStorageUnitException(database.getName()));
     }
     
     @Override
diff --git 
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutor.java
 
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutor.java
index af1e77bbdfe..2dd08b26887 100644
--- 
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutor.java
+++ 
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutor.java
@@ -59,7 +59,7 @@ public final class DropEncryptRuleExecutor implements 
DatabaseRuleDropExecutor<D
         Collection<String> currentEncryptTableNames = 
rule.getConfiguration().getTables()
                 
.stream().map(EncryptTableRuleConfiguration::getName).collect(Collectors.toList());
         Collection<String> notExistedTableNames = 
sqlStatement.getTables().stream().filter(each -> 
!currentEncryptTableNames.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedTableNames.isEmpty(), 
() -> new MissingRequiredRuleException("Encrypt", database.getName(), 
notExistedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () -> 
new MissingRequiredRuleException("Encrypt", database.getName(), 
notExistedTableNames));
     }
     
     @Override
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/GenericTableRandomReplaceAlgorithm.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/GenericTableRandomReplaceAlgorithm.java
index 768c1a4a428..0e14b329a44 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/GenericTableRandomReplaceAlgorithm.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/GenericTableRandomReplaceAlgorithm.java
@@ -65,9 +65,9 @@ public final class GenericTableRandomReplaceAlgorithm 
implements MaskAlgorithm<O
         uppercaseLetterCodes = 
splitPropsToList(props.getProperty(UPPERCASE_LETTER_CODES, 
DEFAULT_UPPERCASE_LETTER_CODES));
         lowercaseLetterCodes = 
splitPropsToList(props.getProperty(LOWERCASE_LETTER_CODES, 
DEFAULT_LOWERCASE_LETTER_CODES));
         digitalCodes = splitPropsToList(props.getProperty(DIGITAL_CODES, 
DEFAULT_DIGITAL_CODES));
-        ShardingSpherePreconditions.checkState(!digitalCodes.isEmpty(), () -> 
new AlgorithmInitializationException(this, "'%s' must be not empty", 
DIGITAL_CODES));
+        ShardingSpherePreconditions.checkNotEmpty(digitalCodes, () -> new 
AlgorithmInitializationException(this, "'%s' must be not empty", 
DIGITAL_CODES));
         specialCodes = splitPropsToList(props.getProperty(SPECIAL_CODES, 
DEFAULT_SPECIAL_CODES));
-        ShardingSpherePreconditions.checkState(!specialCodes.isEmpty(), () -> 
new AlgorithmInitializationException(this, "'%s' must be not empty", 
SPECIAL_CODES));
+        ShardingSpherePreconditions.checkNotEmpty(specialCodes, () -> new 
AlgorithmInitializationException(this, "'%s' must be not empty", 
SPECIAL_CODES));
     }
     
     private List<Character> splitPropsToList(final String props) {
diff --git 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutor.java
 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutor.java
index 1e382fc6c44..edb7e8fda72 100644
--- 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutor.java
+++ 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutor.java
@@ -57,7 +57,7 @@ public final class AlterMaskRuleExecutor implements 
DatabaseRuleAlterExecutor<Al
     private void checkToBeAlteredRules(final AlterMaskRuleStatement 
sqlStatement) {
         Collection<String> currentMaskTableNames = 
rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
         Collection<String> notExistedMaskTableNames = 
getToBeAlteredMaskTableNames(sqlStatement).stream().filter(each -> 
!currentMaskTableNames.contains(each)).collect(Collectors.toList());
-        
ShardingSpherePreconditions.checkState(notExistedMaskTableNames.isEmpty(), () 
-> new MissingRequiredRuleException("Mask", database.getName(), 
notExistedMaskTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedMaskTableNames, 
() -> new MissingRequiredRuleException("Mask", database.getName(), 
notExistedMaskTableNames));
     }
     
     private Collection<String> getToBeAlteredMaskTableNames(final 
AlterMaskRuleStatement sqlStatement) {
diff --git 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutor.java
 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutor.java
index bfd2f98248d..f04fe76acbc 100644
--- 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutor.java
+++ 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutor.java
@@ -61,7 +61,7 @@ public final class CreateMaskRuleExecutor implements 
DatabaseRuleCreateExecutor<
         if (null != rule) {
             Collection<String> currentRuleNames = 
rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
             Collection<String> duplicatedRuleNames = 
sqlStatement.getRules().stream().map(MaskRuleSegment::getTableName).filter(currentRuleNames::contains).collect(Collectors.toList());
-            
ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), () -> new 
DuplicateRuleException("mask", database.getName(), duplicatedRuleNames));
+            ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () 
-> new DuplicateRuleException("mask", database.getName(), duplicatedRuleNames));
         }
     }
     
diff --git 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
index 8400f35b6d0..a3217d79056 100644
--- 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
+++ 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
@@ -59,7 +59,7 @@ public final class DropMaskRuleExecutor implements 
DatabaseRuleDropExecutor<Drop
     private void checkToBeDroppedMaskTableNames(final DropMaskRuleStatement 
sqlStatement) {
         Collection<String> currentMaskTableNames = 
rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
         Collection<String> notExistedTableNames = 
sqlStatement.getTables().stream().filter(each -> 
!currentMaskTableNames.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedTableNames.isEmpty(), 
() -> new MissingRequiredRuleException("Mask", database.getName(), 
notExistedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () -> 
new MissingRequiredRuleException("Mask", database.getName(), 
notExistedTableNames));
     }
     
     @Override
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingDataSourceRuleConfigurationChecker.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingDataSourceRuleConfigurationChecker.java
index 24be73fde69..ca9d4b68a1f 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingDataSourceRuleConfigurationChecker.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingDataSourceRuleConfigurationChecker.java
@@ -64,7 +64,7 @@ public final class 
ReadwriteSplittingDataSourceRuleConfigurationChecker {
         ShardingSpherePreconditions.checkNotEmpty(config.getName(), () -> new 
MissingRequiredReadwriteSplittingDataSourceRuleNameException(databaseName));
         
ShardingSpherePreconditions.checkNotEmpty(config.getWriteDataSourceName(),
                 () -> new 
MissingRequiredReadwriteSplittingActualDataSourceException(ReadwriteSplittingDataSourceType.WRITE,
 exceptionIdentifier));
-        
ShardingSpherePreconditions.checkState(!config.getReadDataSourceNames().isEmpty(),
+        
ShardingSpherePreconditions.checkNotEmpty(config.getReadDataSourceNames(),
                 () -> new 
MissingRequiredReadwriteSplittingActualDataSourceException(ReadwriteSplittingDataSourceType.READ,
 exceptionIdentifier));
         checkActualSourceNames(ReadwriteSplittingDataSourceType.WRITE, 
config.getWriteDataSourceName(), builtWriteDataSourceNames, builtRules);
         config.getReadDataSourceNames().forEach(each -> 
checkActualSourceNames(ReadwriteSplittingDataSourceType.READ, each, 
builtReadDataSourceNames, builtRules));
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
index c49b99d50bd..fe08d57fcc3 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
@@ -60,8 +60,7 @@ public final class 
ReadwriteSplittingStaticDataSourceRuleAttribute implements St
         StorageNodeDataSourceChangedEvent dataSourceEvent = 
(StorageNodeDataSourceChangedEvent) event;
         QualifiedDatabase qualifiedDatabase = 
dataSourceEvent.getQualifiedDatabase();
         ReadwriteSplittingDataSourceRule dataSourceRule = 
dataSourceRules.get(qualifiedDatabase.getGroupName());
-        ShardingSpherePreconditions.checkNotNull(dataSourceRule,
-                () -> new 
ReadwriteSplittingDataSourceRuleNotFoundException(qualifiedDatabase.getGroupName(),
 qualifiedDatabase.getDatabaseName()));
+        ShardingSpherePreconditions.checkNotNull(dataSourceRule, () -> new 
ReadwriteSplittingDataSourceRuleNotFoundException(qualifiedDatabase.getGroupName(),
 qualifiedDatabase.getDatabaseName()));
         if (DataSourceState.DISABLED == 
dataSourceEvent.getDataSource().getStatus()) {
             
dataSourceRule.disableDataSource(dataSourceEvent.getQualifiedDatabase().getDataSourceName());
         } else {
diff --git 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
index de1a4550a0a..93db4765d07 100644
--- 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
+++ 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
@@ -94,7 +94,7 @@ public final class ReadwriteSplittingRuleStatementChecker {
         Collection<String> requiredRuleNames = 
segments.stream().map(ReadwriteSplittingRuleSegment::getName).collect(Collectors.toList());
         Collection<String> currentRuleNames = 
currentRuleConfig.getDataSources().stream().map(ReadwriteSplittingDataSourceRuleConfiguration::getName).collect(Collectors.toList());
         Collection<String> notExistedRuleNames = 
requiredRuleNames.stream().filter(each -> 
!currentRuleNames.contains(each)).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(notExistedRuleNames.isEmpty(), 
() -> new MissingRequiredRuleException("Readwrite-splitting", databaseName, 
notExistedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedRuleNames, () -> 
new MissingRequiredRuleException("Readwrite-splitting", databaseName, 
notExistedRuleNames));
     }
     
     private static void checkDuplicateRuleNames(final ShardingSphereDatabase 
database,
@@ -108,7 +108,7 @@ public final class ReadwriteSplittingRuleStatementChecker {
     
     private static void checkDuplicateRuleNamesWithSelf(final String 
databaseName, final Collection<ReadwriteSplittingRuleSegment> segments) {
         Collection<String> duplicatedRuleNames = 
getDuplicated(segments.stream().map(ReadwriteSplittingRuleSegment::getName).collect(Collectors.toList()));
-        ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), 
() -> new DuplicateRuleException("Readwrite-splitting", databaseName, 
duplicatedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () -> 
new DuplicateRuleException("Readwrite-splitting", databaseName, 
duplicatedRuleNames));
     }
     
     private static Collection<String> getDuplicated(final Collection<String> 
required) {
@@ -124,7 +124,7 @@ public final class ReadwriteSplittingRuleStatementChecker {
         }
         currentRuleNames.addAll(getLogicDataSources(database));
         Collection<String> toBeCreatedRuleNames = 
segments.stream().map(ReadwriteSplittingRuleSegment::getName).filter(currentRuleNames::contains).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(toBeCreatedRuleNames.isEmpty(), 
() -> new InvalidRuleConfigurationException("Readwrite-splitting", 
toBeCreatedRuleNames,
+        ShardingSpherePreconditions.checkMustEmpty(toBeCreatedRuleNames, () -> 
new InvalidRuleConfigurationException("Readwrite-splitting", 
toBeCreatedRuleNames,
                 Collections.singleton(String.format("%s already exists in 
storage unit", toBeCreatedRuleNames))));
     }
     
@@ -135,7 +135,7 @@ public final class ReadwriteSplittingRuleStatementChecker {
             
currentRuleNames.addAll(currentRuleConfig.getDataSources().stream().map(ReadwriteSplittingDataSourceRuleConfiguration::getName).collect(Collectors.toList()));
         }
         Collection<String> toBeCreatedRuleNames = 
segments.stream().map(ReadwriteSplittingRuleSegment::getName).filter(currentRuleNames::contains).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(toBeCreatedRuleNames.isEmpty(), 
() -> new DuplicateRuleException("Readwrite-splitting", databaseName, 
toBeCreatedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(toBeCreatedRuleNames, () -> 
new DuplicateRuleException("Readwrite-splitting", databaseName, 
toBeCreatedRuleNames));
     }
     
     private static void checkDataSourcesExist(final String databaseName, final 
Collection<ReadwriteSplittingRuleSegment> segments, final 
ShardingSphereDatabase database) {
@@ -145,7 +145,7 @@ public final class ReadwriteSplittingRuleStatementChecker {
             requiredDataSources.addAll(each.getReadDataSources());
         });
         Collection<String> notExistedDataSources = 
database.getResourceMetaData().getNotExistedDataSources(requiredDataSources);
-        
ShardingSpherePreconditions.checkState(notExistedDataSources.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(databaseName, notExistedDataSources));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedDataSources, () 
-> new MissingRequiredStorageUnitsException(databaseName, 
notExistedDataSources));
     }
     
     private static Collection<String> getLogicDataSources(final 
ShardingSphereDatabase database) {
diff --git 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/DropReadwriteSplittingRuleExecutor.java
 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/DropReadwriteSplittingRuleExecutor.java
index 7b0184607fa..27707758a80 100644
--- 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/DropReadwriteSplittingRuleExecutor.java
+++ 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/DropReadwriteSplittingRuleExecutor.java
@@ -66,13 +66,13 @@ public final class DropReadwriteSplittingRuleExecutor 
implements DatabaseRuleDro
     private void checkToBeDroppedRuleNames(final 
DropReadwriteSplittingRuleStatement sqlStatement) {
         Collection<String> currentRuleNames = 
rule.getConfiguration().getDataSources().stream().map(ReadwriteSplittingDataSourceRuleConfiguration::getName).collect(Collectors.toList());
         Collection<String> notExistedRuleNames = 
sqlStatement.getNames().stream().filter(each -> 
!currentRuleNames.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedRuleNames.isEmpty(), 
() -> new MissingRequiredRuleException("Readwrite-splitting", 
database.getName(), sqlStatement.getNames()));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedRuleNames, () -> 
new MissingRequiredRuleException("Readwrite-splitting", database.getName(), 
sqlStatement.getNames()));
     }
     
     private void checkToBeDroppedInUsed(final 
DropReadwriteSplittingRuleStatement sqlStatement) {
         Collection<String> resourceBeUsed = getInUsedResources();
         Collection<String> ruleInUsed = 
sqlStatement.getNames().stream().filter(resourceBeUsed::contains).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(ruleInUsed.isEmpty(), () -> new 
InUsedRuleException("Readwrite-splitting", database.getName(), ruleInUsed));
+        ShardingSpherePreconditions.checkMustEmpty(ruleInUsed, () -> new 
InUsedRuleException("Readwrite-splitting", database.getName(), ruleInUsed));
     }
     
     private Collection<String> getInUsedResources() {
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
index 44163f69f3f..4909310645e 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
@@ -83,7 +83,7 @@ public final class ShadowRuleConfigurationChecker implements 
RuleConfigurationCh
     
     private void checkShadowTableAlgorithmsReferences(final Map<String, 
ShadowTableConfiguration> shadowTables, final Map<String, 
AlgorithmConfiguration> shadowAlgorithms, final String databaseName) {
         for (ShadowTableConfiguration each : shadowTables.values()) {
-            
ShardingSpherePreconditions.checkState(!each.getShadowAlgorithmNames().isEmpty(),
 () -> new EmptyAlgorithmException("Shadow", new 
SQLExceptionIdentifier(databaseName)));
+            
ShardingSpherePreconditions.checkNotEmpty(each.getShadowAlgorithmNames(), () -> 
new EmptyAlgorithmException("Shadow", new 
SQLExceptionIdentifier(databaseName)));
             each.getShadowAlgorithmNames().forEach(shadowAlgorithmName -> 
ShardingSpherePreconditions.checkState(shadowAlgorithms.containsKey(shadowAlgorithmName),
                     () -> new EmptyAlgorithmException("Shadow", new 
SQLExceptionIdentifier(databaseName))));
         }
diff --git 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/checker/ShadowRuleStatementChecker.java
 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/checker/ShadowRuleStatementChecker.java
index 511892a9179..8c710067037 100644
--- 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/checker/ShadowRuleStatementChecker.java
+++ 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/checker/ShadowRuleStatementChecker.java
@@ -47,7 +47,7 @@ public final class ShadowRuleStatementChecker {
      */
     public static void checkStorageUnitsExist(final Collection<String> 
requiredStorageUnits, final ShardingSphereDatabase database) {
         Collection<String> notExistedStorageUnits = 
database.getResourceMetaData().getNotExistedDataSources(requiredStorageUnits);
-        
ShardingSpherePreconditions.checkState(notExistedStorageUnits.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnits));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedStorageUnits, () 
-> new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnits));
     }
     
     /**
@@ -58,7 +58,7 @@ public final class ShadowRuleStatementChecker {
      */
     public static void checkDuplicated(final Collection<String> rules, final 
Function<Collection<String>, KernelSQLException> thrower) {
         Collection<String> duplicated = getDuplicated(rules);
-        ShardingSpherePreconditions.checkState(duplicated.isEmpty(), () -> 
thrower.apply(duplicated));
+        ShardingSpherePreconditions.checkMustEmpty(duplicated, () -> 
thrower.apply(duplicated));
     }
     
     /**
@@ -70,7 +70,7 @@ public final class ShadowRuleStatementChecker {
      */
     public static void checkDuplicated(final Collection<String> requiredRules, 
final Collection<String> currentRules, final Function<Collection<String>, 
KernelSQLException> thrower) {
         Collection<String> duplicated = getDuplicated(requiredRules, 
currentRules);
-        ShardingSpherePreconditions.checkState(duplicated.isEmpty(), () -> 
thrower.apply(duplicated));
+        ShardingSpherePreconditions.checkMustEmpty(duplicated, () -> 
thrower.apply(duplicated));
     }
     
     /**
@@ -82,7 +82,7 @@ public final class ShadowRuleStatementChecker {
      */
     public static void checkExisted(final Collection<String> requiredRules, 
final Collection<String> currentRules, final Function<Collection<String>, 
KernelSQLException> thrower) {
         Collection<String> notExisted = getNotExisted(requiredRules, 
currentRules);
-        ShardingSpherePreconditions.checkState(notExisted.isEmpty(), () -> 
thrower.apply(notExisted));
+        ShardingSpherePreconditions.checkMustEmpty(notExisted, () -> 
thrower.apply(notExisted));
     }
     
     private static Collection<String> getDuplicated(final Collection<String> 
names) {
@@ -108,7 +108,7 @@ public final class ShadowRuleStatementChecker {
         Collection<String> logicDataSources = getLogicDataSources(database);
         if (!logicDataSources.isEmpty()) {
             Collection<String> duplicatedNames = 
toBeCreatedRuleNames.stream().filter(logicDataSources::contains).collect(Collectors.toList());
-            ShardingSpherePreconditions.checkState(duplicatedNames.isEmpty(), 
() -> new InvalidRuleConfigurationException("shadow", duplicatedNames,
+            ShardingSpherePreconditions.checkMustEmpty(duplicatedNames, () -> 
new InvalidRuleConfigurationException("shadow", duplicatedNames,
                     Collections.singleton(String.format("%s already exists in 
storage unit", duplicatedNames))));
         }
     }
diff --git 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmExecutor.java
 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmExecutor.java
index 9c3529067f6..8e3e6b6c27d 100644
--- 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmExecutor.java
+++ 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmExecutor.java
@@ -60,7 +60,7 @@ public final class CreateDefaultShadowAlgorithmExecutor 
implements DatabaseRuleC
     }
     
     private void checkAlgorithmCompleteness(final 
CreateDefaultShadowAlgorithmStatement sqlStatement) {
-        
ShardingSpherePreconditions.checkState(!sqlStatement.getShadowAlgorithmSegment().getAlgorithmSegment().getName().isEmpty(),
+        
ShardingSpherePreconditions.checkNotEmpty(sqlStatement.getShadowAlgorithmSegment().getAlgorithmSegment().getName(),
                 () -> new EmptyAlgorithmException("Shadow", new 
SQLExceptionIdentifier(database.getName())));
     }
     
diff --git 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleExecutor.java
 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleExecutor.java
index e0066e7d95a..fc12244238c 100644
--- 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleExecutor.java
+++ 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleExecutor.java
@@ -59,7 +59,7 @@ public final class CreateShadowRuleExecutor implements 
DatabaseRuleCreateExecuto
         
ShadowRuleStatementChecker.checkDuplicatedWithLogicDataSource(toBeCreatedRuleNames,
 database);
         if (!sqlStatement.isIfNotExists()) {
             
toBeCreatedRuleNames.retainAll(ShadowRuleStatementSupporter.getRuleNames(null 
== rule ? null : rule.getConfiguration()));
-            
ShardingSpherePreconditions.checkState(toBeCreatedRuleNames.isEmpty(), () -> 
new DuplicateRuleException("shadow", database.getName(), toBeCreatedRuleNames));
+            ShardingSpherePreconditions.checkMustEmpty(toBeCreatedRuleNames, 
() -> new DuplicateRuleException("shadow", database.getName(), 
toBeCreatedRuleNames));
         }
     }
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
index e35d11bb651..c29475bf104 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
@@ -41,7 +41,7 @@ public final class 
DMLShardingConditionsShardingAuditAlgorithm implements Shardi
         if (sqlStatementContext.getSqlStatement() instanceof DMLStatement) {
             ShardingRule rule = 
database.getRuleMetaData().getSingleRule(ShardingRule.class);
             if 
(sqlStatementContext.getTablesContext().getTableNames().stream().anyMatch(rule::isShardingTable))
 {
-                ShardingSpherePreconditions.checkState(!new 
ShardingConditionEngine(globalRuleMetaData, database, 
rule).createShardingConditions(sqlStatementContext, params).isEmpty(),
+                ShardingSpherePreconditions.checkNotEmpty(new 
ShardingConditionEngine(globalRuleMetaData, database, 
rule).createShardingConditions(sqlStatementContext, params),
                         DMLWithoutShardingKeyException::new);
             }
         }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
index 53949406561..9adcdacb994 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
@@ -41,7 +41,7 @@ public final class BoundaryBasedRangeShardingAlgorithm 
extends AbstractRangeShar
         
ShardingSpherePreconditions.checkState(props.containsKey(SHARDING_RANGES_KEY), 
() -> new AlgorithmInitializationException(this, "Sharding ranges cannot be 
null."));
         List<Long> partitionRanges = 
Splitter.on(",").trimResults().splitToList(props.getProperty(SHARDING_RANGES_KEY)).stream()
                 
.map(this::parseLong).filter(Objects::nonNull).sorted().collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(!partitionRanges.isEmpty(), () 
-> new AlgorithmInitializationException(this, "Sharding ranges can not be 
empty."));
+        ShardingSpherePreconditions.checkNotEmpty(partitionRanges, () -> new 
AlgorithmInitializationException(this, "Sharding ranges can not be empty."));
         Map<Integer, Range<Comparable<?>>> result = new 
HashMap<>(partitionRanges.size() + 1, 1F);
         for (int i = 0; i < partitionRanges.size(); i++) {
             Long rangeValue = partitionRanges.get(i);
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
index 6013e825c3f..ebcfe4a8951 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
@@ -63,7 +63,7 @@ public final class ShardingSchemaTableAggregationReviser 
implements SchemaTableA
         TableMetaData sample = tableMetaDataList.iterator().next();
         Collection<TableMetaDataViolation> violations = 
tableMetaDataList.stream()
                 .filter(each -> !sample.equals(each)).map(each -> new 
TableMetaDataViolation(each.getName(), each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(violations.isEmpty(), () -> new 
RuleAndStorageMetaDataMismatchedException(createErrorReason(logicTableName, 
violations)));
+        ShardingSpherePreconditions.checkMustEmpty(violations, () -> new 
RuleAndStorageMetaDataMismatchedException(createErrorReason(logicTableName, 
violations)));
     }
     
     private String createErrorReason(final String logicTableName, final 
Collection<TableMetaDataViolation> violations) {
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
index f41bf804e68..3700fe51696 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
@@ -260,7 +260,7 @@ public final class ShardingStandardRoutingEngine implements 
ShardingRouteEngine
             return shardingTable.getActualDataSourceNames();
         }
         Collection<String> result = 
databaseShardingStrategy.doSharding(shardingTable.getActualDataSourceNames(), 
databaseShardingValues, shardingTable.getDataSourceDataNode(), props);
-        ShardingSpherePreconditions.checkState(!result.isEmpty(), 
NoShardingDatabaseRouteInfoException::new);
+        ShardingSpherePreconditions.checkNotEmpty(result, 
NoShardingDatabaseRouteInfoException::new);
         
ShardingSpherePreconditions.checkState(shardingTable.getActualDataSourceNames().containsAll(result),
                 () -> new 
MismatchedShardingDataSourceRouteInfoException(result, 
shardingTable.getActualDataSourceNames()));
         return result;
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
index 50974a09bc9..07e2e59c635 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
@@ -85,6 +85,6 @@ public final class ShardingDropTableStatementValidator 
extends ShardingDDLStatem
         // TODO check actual tables not be used in multi rules, and remove 
this check logic
         Set<String> actualTables = 
routeContext.getRouteUnits().stream().flatMap(each -> 
each.getTableMappers().stream().map(RouteMapper::getActualName)).collect(Collectors.toSet());
         Collection<String> inUsedTables = 
actualTables.stream().filter(otherRuleActualTables::contains).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(inUsedTables.isEmpty(), () -> 
new InUsedTablesException(inUsedTables));
+        ShardingSpherePreconditions.checkMustEmpty(inUsedTables, () -> new 
InUsedTablesException(inUsedTables));
     }
 }
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
index 7d46e04056a..6a3341d9362 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
@@ -314,7 +314,7 @@ public final class ShardingTableRuleStatementChecker {
         Collection<String> notExistedDataSources = 
database.getResourceMetaData().getNotExistedDataSources(requiredDataSource);
         Collection<String> logicDataSources = getLogicDataSources(database);
         notExistedDataSources.removeIf(logicDataSources::contains);
-        
ShardingSpherePreconditions.checkState(notExistedDataSources.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(databaseName, notExistedDataSources));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedDataSources, () 
-> new MissingRequiredStorageUnitsException(databaseName, 
notExistedDataSources));
     }
     
     private static Collection<String> getRequiredDataSources(final 
ShardingRuleConfiguration config) {
@@ -347,16 +347,16 @@ public final class ShardingTableRuleStatementChecker {
                                     final boolean ifNotExists) {
         Collection<String> requiredTables = 
rules.stream().map(AbstractTableRuleSegment::getLogicTable).collect(Collectors.toList());
         Collection<String> duplicatedRuleNames = 
getDuplicatedRuleNames(requiredTables);
-        ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), 
() -> new DuplicateRuleException("sharding", databaseName, 
duplicatedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () -> 
new DuplicateRuleException("sharding", databaseName, duplicatedRuleNames));
         Collection<String> currentShardingTables = null == currentRuleConfig ? 
Collections.emptyList() : getCurrentShardingTables(currentRuleConfig);
         if (isCreate) {
             if (!ifNotExists) {
                 
duplicatedRuleNames.addAll(getDuplicatedRuleNames(requiredTables, 
currentShardingTables));
-                
ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), () -> new 
DuplicateRuleException("sharding", databaseName, duplicatedRuleNames));
+                
ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () -> new 
DuplicateRuleException("sharding", databaseName, duplicatedRuleNames));
             }
         } else {
             Collection<String> notExistedRules = 
getNotExistedRules(requiredTables, currentShardingTables);
-            ShardingSpherePreconditions.checkState(notExistedRules.isEmpty(), 
() -> new MissingRequiredRuleException("sharding", databaseName, 
notExistedRules));
+            ShardingSpherePreconditions.checkMustEmpty(notExistedRules, () -> 
new MissingRequiredRuleException("sharding", databaseName, notExistedRules));
         }
     }
     
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleExecutor.java
index e3d31a49a38..67bf1de9113 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleExecutor.java
@@ -63,13 +63,13 @@ public final class AlterShardingTableReferenceRuleExecutor 
implements DatabaseRu
     private void checkToBeAlteredRulesExisted(final 
AlterShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> currentRuleNames = 
rule.getConfiguration().getBindingTableGroups().stream().map(ShardingTableReferenceRuleConfiguration::getName).collect(Collectors.toSet());
         Collection<String> notExistedRuleNames = 
sqlStatement.getRules().stream().map(TableReferenceRuleSegment::getName).filter(each
 -> !currentRuleNames.contains(each)).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(notExistedRuleNames.isEmpty(), 
() -> new MissingRequiredRuleException("Sharding table reference", 
database.getName(), notExistedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedRuleNames, () -> 
new MissingRequiredRuleException("Sharding table reference", 
database.getName(), notExistedRuleNames));
     }
     
     private void checkDuplicatedTablesInShardingTableReferenceRules(final 
AlterShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> currentReferencedTableNames = 
getReferencedTableNames(getToBeAlteredRuleNames(sqlStatement));
         Collection<String> duplicatedTableNames = 
sqlStatement.getTableNames().stream().filter(currentReferencedTableNames::contains).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicatedTableNames.isEmpty(), 
() -> new DuplicateRuleException("sharding table reference", 
database.getName(), duplicatedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedTableNames, () -> 
new DuplicateRuleException("sharding table reference", database.getName(), 
duplicatedTableNames));
     }
     
     private Collection<String> getReferencedTableNames(final 
Collection<String> getToBeAlteredRuleNames) {
@@ -89,7 +89,7 @@ public final class AlterShardingTableReferenceRuleExecutor 
implements DatabaseRu
     private void checkToBeReferencedShardingTablesExisted(final 
AlterShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> currentShardingTableNames = 
getCurrentShardingTableNames();
         Collection<String> notExistedTableNames = 
sqlStatement.getTableNames().stream().filter(each -> 
!currentShardingTableNames.contains(each)).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(notExistedTableNames.isEmpty(), 
() -> new MissingRequiredRuleException("Sharding", database.getName(), 
notExistedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () -> 
new MissingRequiredRuleException("Sharding", database.getName(), 
notExistedTableNames));
     }
     
     private Collection<String> getCurrentShardingTableNames() {
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleExecutor.java
index 628a9967b63..5cbe9562619 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleExecutor.java
@@ -63,19 +63,19 @@ public final class CreateShardingTableReferenceRuleExecutor 
implements DatabaseR
     
     private void checkDuplicatedRuleNames(final 
CreateShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> duplicatedRuleNames = 
getDuplicatedRuleNames(sqlStatement);
-        ShardingSpherePreconditions.checkState(duplicatedRuleNames.isEmpty(), 
() -> new DuplicateRuleException("sharding table reference", 
database.getName(), duplicatedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedRuleNames, () -> 
new DuplicateRuleException("sharding table reference", database.getName(), 
duplicatedRuleNames));
     }
     
     private void checkDuplicatedTablesInShardingTableReferenceRules(final 
CreateShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> currentReferencedTableNames = 
getReferencedTableNames();
         Collection<String> duplicatedTableNames = 
sqlStatement.getTableNames().stream().filter(currentReferencedTableNames::contains).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicatedTableNames.isEmpty(), 
() -> new DuplicateRuleException("sharding table reference", 
database.getName(), duplicatedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedTableNames, () -> 
new DuplicateRuleException("sharding table reference", database.getName(), 
duplicatedTableNames));
     }
     
     private void checkToBeReferencedShardingTablesExisted(final 
CreateShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> currentShardingTableNames = 
getCurrentShardingTableNames();
         Collection<String> notExistedTableNames = 
sqlStatement.getTableNames().stream().filter(each -> 
!currentShardingTableNames.contains(each)).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(notExistedTableNames.isEmpty(), 
() -> new MissingRequiredRuleException("Sharding", database.getName(), 
notExistedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () -> 
new MissingRequiredRuleException("Sharding", database.getName(), 
notExistedTableNames));
     }
     
     private Collection<String> getCurrentShardingTableNames() {
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAlgorithmExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAlgorithmExecutor.java
index 300d988faae..23fb1522e61 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAlgorithmExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAlgorithmExecutor.java
@@ -59,14 +59,13 @@ public final class DropShardingAlgorithmExecutor implements 
DatabaseRuleDropExec
     private void checkToBeDroppedShardingAlgorithms(final 
DropShardingAlgorithmStatement sqlStatement) {
         Collection<String> currentShardingAlgorithms = 
getCurrentShardingAlgorithms();
         Collection<String> notExistedAlgorithms = 
sqlStatement.getNames().stream().filter(each -> 
!currentShardingAlgorithms.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedAlgorithms.isEmpty(),
-                () -> new UnregisteredAlgorithmException("Sharding", 
notExistedAlgorithms, new SQLExceptionIdentifier(database.getName())));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedAlgorithms, () -> 
new UnregisteredAlgorithmException("Sharding", notExistedAlgorithms, new 
SQLExceptionIdentifier(database.getName())));
     }
     
     private void checkShardingAlgorithmsInUsed(final 
DropShardingAlgorithmStatement sqlStatement) {
         Collection<String> allInUsed = getAllOfAlgorithmsInUsed();
         Collection<String> usedAlgorithms = 
sqlStatement.getNames().stream().filter(allInUsed::contains).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(usedAlgorithms.isEmpty(), () -> 
new InUsedAlgorithmException("Sharding", database.getName(), usedAlgorithms));
+        ShardingSpherePreconditions.checkMustEmpty(usedAlgorithms, () -> new 
InUsedAlgorithmException("Sharding", database.getName(), usedAlgorithms));
     }
     
     private Collection<String> getAllOfAlgorithmsInUsed() {
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAuditorExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAuditorExecutor.java
index e3a27d6054a..3f002379140 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAuditorExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingAuditorExecutor.java
@@ -58,14 +58,13 @@ public final class DropShardingAuditorExecutor implements 
DatabaseRuleDropExecut
     
     private void checkExist(final DropShardingAuditorStatement sqlStatement) {
         Collection<String> notExistAuditors = 
sqlStatement.getNames().stream().filter(each -> 
!rule.getConfiguration().getAuditors().containsKey(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistAuditors.isEmpty(),
-                () -> new UnregisteredAlgorithmException("Sharding auditor", 
notExistAuditors, new SQLExceptionIdentifier(database.getName())));
+        ShardingSpherePreconditions.checkMustEmpty(notExistAuditors, () -> new 
UnregisteredAlgorithmException("Sharding auditor", notExistAuditors, new 
SQLExceptionIdentifier(database.getName())));
     }
     
     private void checkInUsed(final DropShardingAuditorStatement sqlStatement) {
         Collection<String> usedAuditors = getUsedAuditors();
         Collection<String> inUsedNames = 
sqlStatement.getNames().stream().filter(usedAuditors::contains).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(inUsedNames.isEmpty(), () -> 
new InUsedAlgorithmException("Sharding auditor", database.getName(), 
inUsedNames));
+        ShardingSpherePreconditions.checkMustEmpty(inUsedNames, () -> new 
InUsedAlgorithmException("Sharding auditor", database.getName(), inUsedNames));
     }
     
     private Collection<String> getUsedAuditors() {
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingKeyGeneratorExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingKeyGeneratorExecutor.java
index 73a9abf769e..3586465ad7d 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingKeyGeneratorExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingKeyGeneratorExecutor.java
@@ -59,14 +59,14 @@ public final class DropShardingKeyGeneratorExecutor 
implements DatabaseRuleDropE
     
     private void checkExist(final DropShardingKeyGeneratorStatement 
sqlStatement) {
         Collection<String> notExistKeyGenerators = 
sqlStatement.getNames().stream().filter(each -> 
!rule.getConfiguration().getKeyGenerators().containsKey(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistKeyGenerators.isEmpty(),
+        ShardingSpherePreconditions.checkMustEmpty(notExistKeyGenerators,
                 () -> new UnregisteredAlgorithmException("Key generator", 
notExistKeyGenerators, new SQLExceptionIdentifier(database.getName())));
     }
     
     private void checkInUsed(final DropShardingKeyGeneratorStatement 
sqlStatement) {
         Collection<String> usedKeyGenerators = getUsedKeyGenerators();
         Collection<String> inUsedNames = 
sqlStatement.getNames().stream().filter(usedKeyGenerators::contains).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(inUsedNames.isEmpty(), () -> 
new InUsedAlgorithmException("Key generator", database.getName(), inUsedNames));
+        ShardingSpherePreconditions.checkMustEmpty(inUsedNames, () -> new 
InUsedAlgorithmException("Key generator", database.getName(), inUsedNames));
     }
     
     private Collection<String> getUsedKeyGenerators() {
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceExecutor.java
index ac5207391cc..46f865fcadc 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceExecutor.java
@@ -53,13 +53,13 @@ public final class DropShardingTableReferenceExecutor 
implements DatabaseRuleDro
     }
     
     private void checkCurrentRuleConfiguration() {
-        
ShardingSpherePreconditions.checkState(!rule.getConfiguration().getBindingTableGroups().isEmpty(),
 () -> new MissingRequiredRuleException("Sharding table reference", 
database.getName()));
+        
ShardingSpherePreconditions.checkNotEmpty(rule.getConfiguration().getBindingTableGroups(),
 () -> new MissingRequiredRuleException("Sharding table reference", 
database.getName()));
     }
     
     private void checkToBeDroppedShardingTableReferenceRules(final 
DropShardingTableReferenceRuleStatement sqlStatement) {
         Collection<String> currentRuleNames = 
getCurrentShardingTableReferenceRuleNames();
         Collection<String> notExistedRuleNames = 
sqlStatement.getNames().stream().filter(each -> 
!currentRuleNames.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedRuleNames.isEmpty(), 
() -> new MissingRequiredRuleException("Sharding table reference", 
database.getName(), notExistedRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedRuleNames, () -> 
new MissingRequiredRuleException("Sharding table reference", 
database.getName(), notExistedRuleNames));
     }
     
     private Collection<String> getCurrentShardingTableReferenceRuleNames() {
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleExecutor.java
index 87e23b20830..dd7312c623a 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleExecutor.java
@@ -61,7 +61,7 @@ public final class DropShardingTableRuleExecutor implements 
DatabaseRuleDropExec
     private void checkToBeDroppedShardingTableNames(final 
DropShardingTableRuleStatement sqlStatement) {
         Collection<String> currentShardingTableNames = 
getCurrentShardingTableNames();
         Collection<String> notExistedTableNames = 
getToBeDroppedShardingTableNames(sqlStatement).stream().filter(each -> 
!currentShardingTableNames.contains(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedTableNames.isEmpty(), 
() -> new MissingRequiredRuleException("sharding", database.getName(), 
notExistedTableNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () -> 
new MissingRequiredRuleException("sharding", database.getName(), 
notExistedTableNames));
     }
     
     private Collection<String> getToBeDroppedShardingTableNames(final 
DropShardingTableRuleStatement sqlStatement) {
diff --git 
a/infra/algorithm/load-balancer/type/weight/src/main/java/org/apache/shardingsphere/infra/algorithm/loadbalancer/weight/WeightLoadBalanceAlgorithm.java
 
b/infra/algorithm/load-balancer/type/weight/src/main/java/org/apache/shardingsphere/infra/algorithm/loadbalancer/weight/WeightLoadBalanceAlgorithm.java
index d6ef3923750..df0097f8141 100644
--- 
a/infra/algorithm/load-balancer/type/weight/src/main/java/org/apache/shardingsphere/infra/algorithm/loadbalancer/weight/WeightLoadBalanceAlgorithm.java
+++ 
b/infra/algorithm/load-balancer/type/weight/src/main/java/org/apache/shardingsphere/infra/algorithm/loadbalancer/weight/WeightLoadBalanceAlgorithm.java
@@ -45,7 +45,7 @@ public final class WeightLoadBalanceAlgorithm implements 
LoadBalanceAlgorithm {
     @Override
     public void init(final Properties props) {
         Collection<String> availableTargetNames = props.stringPropertyNames();
-        
ShardingSpherePreconditions.checkState(!availableTargetNames.isEmpty(), () -> 
new AlgorithmInitializationException(this, "Available target is required."));
+        ShardingSpherePreconditions.checkNotEmpty(availableTargetNames, () -> 
new AlgorithmInitializationException(this, "Available target is required."));
         for (String each : availableTargetNames) {
             String weight = props.getProperty(each);
             ShardingSpherePreconditions.checkNotNull(weight,
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
index e7fd9d0f27d..45009ec946c 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
@@ -140,7 +140,7 @@ public final class SelectStatementContext extends 
CommonSQLStatementContext impl
     
     private Collection<TableMapperRuleAttribute> 
getTableMapperRuleAttributes(final ShardingSphereMetaData metaData, final 
String databaseName) {
         if (null == databaseName) {
-            
ShardingSpherePreconditions.checkState(tablesContext.getSimpleTableSegments().isEmpty(),
 NoDatabaseSelectedException::new);
+            
ShardingSpherePreconditions.checkMustEmpty(tablesContext.getSimpleTableSegments(),
 NoDatabaseSelectedException::new);
             return Collections.emptyList();
         }
         ShardingSphereDatabase database = metaData.getDatabase(databaseName);
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
index a7e11a424de..77dd80249ae 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
@@ -66,13 +66,13 @@ public final class RuleConfigurationCheckEngine {
         Collection<String> logicDataSources = 
database.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class).stream()
                 .flatMap(each -> 
each.getDataSourceMapper().keySet().stream()).collect(Collectors.toSet());
         notExistedDataSources.removeIf(logicDataSources::contains);
-        
ShardingSpherePreconditions.checkState(notExistedDataSources.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(database.getName(), 
notExistedDataSources));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedDataSources, () 
-> new MissingRequiredStorageUnitsException(database.getName(), 
notExistedDataSources));
     }
     
     private static void checkTablesNotDuplicated(final RuleConfiguration 
ruleConfig, final String databaseName, final Collection<String> tableNames) {
         Collection<String> duplicatedTables = tableNames.stream()
                 .collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream().filter(each -> each.getValue() > 
1).map(Entry::getKey).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), () 
-> new DuplicateRuleException(getRuleType(ruleConfig), databaseName, 
duplicatedTables));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedTables, () -> new 
DuplicateRuleException(getRuleType(ruleConfig), databaseName, 
duplicatedTables));
     }
     
     private static String getRuleType(final RuleConfiguration ruleConfig) {
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
index f9aeb9e7f53..5d0dedb9d75 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
@@ -40,7 +40,7 @@ public final class DatabaseTypeFactory {
      */
     public static DatabaseType get(final String url) {
         Collection<DatabaseType> databaseTypes = 
ShardingSphereServiceLoader.getServiceInstances(DatabaseType.class).stream().filter(each
 -> matchURLs(url, each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(!databaseTypes.isEmpty(), () -> 
new UnsupportedStorageTypeException(url));
+        ShardingSpherePreconditions.checkNotEmpty(databaseTypes, () -> new 
UnsupportedStorageTypeException(url));
         for (DatabaseType each : databaseTypes) {
             if (each.getTrunkDatabaseType().isPresent()) {
                 return each;
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
index 4f70b7c0e49..cd63f656103 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
@@ -80,18 +80,18 @@ public final class AlterStorageUnitExecutor implements 
DistSQLUpdateExecutor<Alt
     
     private void checkDuplicatedStorageUnitNames(final Collection<String> 
storageUnitNames) {
         Collection<String> duplicatedStorageUnitNames = 
storageUnitNames.stream().filter(each -> 
storageUnitNames.stream().filter(each::equals).count() > 
1).collect(Collectors.toList());
-        
ShardingSpherePreconditions.checkState(duplicatedStorageUnitNames.isEmpty(), () 
-> new DuplicateStorageUnitException(database.getName(), 
duplicatedStorageUnitNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedStorageUnitNames, 
() -> new DuplicateStorageUnitException(database.getName(), 
duplicatedStorageUnitNames));
     }
     
     private void checkStorageUnitNameExisted(final Collection<String> 
storageUnitNames) {
         Collection<String> notExistedStorageUnitNames = 
storageUnitNames.stream().filter(each -> 
!database.getResourceMetaData().getStorageUnits().containsKey(each)).collect(Collectors.toList());
-        
ShardingSpherePreconditions.checkState(notExistedStorageUnitNames.isEmpty(), () 
-> new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnitNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedStorageUnitNames, 
() -> new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnitNames));
     }
     
     private void checkDatabase(final AlterStorageUnitStatement sqlStatement) {
         Collection<String> invalidStorageUnitNames = 
sqlStatement.getStorageUnits().stream().collect(Collectors.toMap(DataSourceSegment::getName,
 each -> each)).entrySet().stream()
                 .filter(each -> !isSameDatabase(each.getValue(), 
database.getResourceMetaData().getStorageUnits().get(each.getKey()))).map(Entry::getKey).collect(Collectors.toSet());
-        
ShardingSpherePreconditions.checkState(invalidStorageUnitNames.isEmpty(), () -> 
new AlterStorageUnitConnectionInfoException(invalidStorageUnitNames));
+        ShardingSpherePreconditions.checkMustEmpty(invalidStorageUnitNames, () 
-> new AlterStorageUnitConnectionInfoException(invalidStorageUnitNames));
     }
     
     private boolean isSameDatabase(final DataSourceSegment segment, final 
StorageUnit storageUnit) {
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
index 3b4e820b969..bb86951095e 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
@@ -89,7 +89,7 @@ public final class RegisterStorageUnitExecutor implements 
DistSQLUpdateExecutor<
             }
             dataSourceNames.add(each.getName());
         }
-        
ShardingSpherePreconditions.checkState(duplicatedDataSourceNames.isEmpty(), () 
-> new DuplicateStorageUnitException(database.getName(), 
duplicatedDataSourceNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedDataSourceNames, 
() -> new DuplicateStorageUnitException(database.getName(), 
duplicatedDataSourceNames));
     }
     
     private void checkDuplicatedLogicalDataSourceNames(final 
Collection<String> requiredDataSourceNames) {
@@ -98,7 +98,7 @@ public final class RegisterStorageUnitExecutor implements 
DistSQLUpdateExecutor<
             return;
         }
         Collection<String> duplicatedDataSourceNames = 
requiredDataSourceNames.stream().filter(logicalDataSourceNames::contains).collect(Collectors.toSet());
-        
ShardingSpherePreconditions.checkState(duplicatedDataSourceNames.isEmpty(), () 
-> new DuplicateStorageUnitException(database.getName(), 
duplicatedDataSourceNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedDataSourceNames, 
() -> new DuplicateStorageUnitException(database.getName(), 
duplicatedDataSourceNames));
     }
     
     private Collection<String> getCurrentStorageUnitNames(final ContextManager 
contextManager) {
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
index 3db09edea9d..ded89c5c9b0 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
@@ -66,7 +66,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
     private void checkExisted(final Collection<String> storageUnitNames) {
         Map<String, StorageUnit> storageUnits = 
database.getResourceMetaData().getStorageUnits();
         Collection<String> notExistedStorageUnits = 
storageUnitNames.stream().filter(each -> 
!storageUnits.containsKey(each)).collect(Collectors.toList());
-        
ShardingSpherePreconditions.checkState(notExistedStorageUnits.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnits));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedStorageUnits, () 
-> new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnits));
     }
     
     private void checkInUsed(final UnregisterStorageUnitStatement 
sqlStatement) {
@@ -78,7 +78,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
         }
         Collection<Class<ShardingSphereRule>> ignoreUsageCheckRules = 
getIgnoreUsageCheckRules(sqlStatement);
         String firstResource = inUsedStorageUnitNames.iterator().next();
-        
ShardingSpherePreconditions.checkState(!ignoreUsageCheckRules.isEmpty(), () -> 
new InUsedStorageUnitException(firstResource, 
inUsedStorageUnits.get(firstResource)));
+        ShardingSpherePreconditions.checkNotEmpty(ignoreUsageCheckRules, () -> 
new InUsedStorageUnitException(firstResource, 
inUsedStorageUnits.get(firstResource)));
         checkInUsedIgnoreTables(new HashSet<>(inUsedStorageUnitNames), 
inUsedStorageUnits, ignoreUsageCheckRules);
     }
     
@@ -98,7 +98,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
         for (String each : inUsedResourceNames) {
             Collection<Class<? extends ShardingSphereRule>> inUsedRules = 
inUsedStorageUnits.get(each);
             ignoreShardingSphereRules.forEach(inUsedRules::remove);
-            ShardingSpherePreconditions.checkState(inUsedRules.isEmpty(), () 
-> new InUsedStorageUnitException(each, inUsedRules));
+            ShardingSpherePreconditions.checkMustEmpty(inUsedRules, () -> new 
InUsedStorageUnitException(each, inUsedRules));
         }
     }
     
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/validate/DistSQLDataSourcePoolPropertiesValidator.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/validate/DistSQLDataSourcePoolPropertiesValidator.java
index 55e755c69e0..5e9b022b0b1 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/validate/DistSQLDataSourcePoolPropertiesValidator.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/validate/DistSQLDataSourcePoolPropertiesValidator.java
@@ -36,6 +36,6 @@ public final class DistSQLDataSourcePoolPropertiesValidator {
      */
     public void validate(final Map<String, DataSourcePoolProperties> propsMap) 
{
         Map<String, Exception> exceptions = 
DataSourcePoolPropertiesValidator.validate(propsMap);
-        ShardingSpherePreconditions.checkState(exceptions.isEmpty(), () -> new 
StorageUnitsConnectException(exceptions));
+        ShardingSpherePreconditions.checkMustEmpty(exceptions, () -> new 
StorageUnitsConnectException(exceptions));
     }
 }
diff --git 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditions.java
 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditions.java
index 3e8e98b84e4..aa463358aa1 100644
--- 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditions.java
+++ 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditions.java
@@ -21,6 +21,8 @@ import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 
+import java.util.Collection;
+import java.util.Map;
 import java.util.function.Supplier;
 
 /**
@@ -70,4 +72,60 @@ public final class ShardingSpherePreconditions {
             throw exceptionSupplierIfUnexpected.get();
         }
     }
+    
+    /**
+     * Ensures that a collection passed as a parameter to the calling method 
is not empty.
+     *
+     * @param <T> type of exception
+     * @param values collection to be checked
+     * @param exceptionSupplierIfUnexpected exception from this supplier will 
be thrown if expression is unexpected
+     * @throws T exception to be thrown
+     */
+    public static <T extends Throwable> void checkNotEmpty(final Collection<?> 
values, final Supplier<T> exceptionSupplierIfUnexpected) throws T {
+        if (values.isEmpty()) {
+            throw exceptionSupplierIfUnexpected.get();
+        }
+    }
+    
+    /**
+     * Ensures that a collection passed as a parameter to the calling method 
is not empty.
+     *
+     * @param <T> type of exception
+     * @param map map to be checked
+     * @param exceptionSupplierIfUnexpected exception from this supplier will 
be thrown if expression is unexpected
+     * @throws T exception to be thrown
+     */
+    public static <T extends Throwable> void checkNotEmpty(final Map<?, ?> 
map, final Supplier<T> exceptionSupplierIfUnexpected) throws T {
+        if (map.isEmpty()) {
+            throw exceptionSupplierIfUnexpected.get();
+        }
+    }
+    
+    /**
+     * Ensures that a collection passed as a parameter to the calling method 
must empty.
+     *
+     * @param <T> type of exception
+     * @param values collection to be checked
+     * @param exceptionSupplierIfUnexpected exception from this supplier will 
be thrown if expression is unexpected
+     * @throws T exception to be thrown
+     */
+    public static <T extends Throwable> void checkMustEmpty(final 
Collection<?> values, final Supplier<T> exceptionSupplierIfUnexpected) throws T 
{
+        if (!values.isEmpty()) {
+            throw exceptionSupplierIfUnexpected.get();
+        }
+    }
+    
+    /**
+     * Ensures that a collection passed as a parameter to the calling method 
must empty.
+     *
+     * @param <T> type of exception
+     * @param map map to be checked
+     * @param exceptionSupplierIfUnexpected exception from this supplier will 
be thrown if expression is unexpected
+     * @throws T exception to be thrown
+     */
+    public static <T extends Throwable> void checkMustEmpty(final Map<?, ?> 
map, final Supplier<T> exceptionSupplierIfUnexpected) throws T {
+        if (!map.isEmpty()) {
+            throw exceptionSupplierIfUnexpected.get();
+        }
+    }
 }
diff --git 
a/infra/exception/core/src/test/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditionsTest.java
 
b/infra/exception/core/src/test/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditionsTest.java
index fa49dff8447..4841749990c 100644
--- 
a/infra/exception/core/src/test/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditionsTest.java
+++ 
b/infra/exception/core/src/test/java/org/apache/shardingsphere/infra/exception/core/ShardingSpherePreconditionsTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.infra.exception.core;
 import org.junit.jupiter.api.Test;
 
 import java.sql.SQLException;
+import java.util.Collections;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
@@ -46,13 +47,53 @@ class ShardingSpherePreconditionsTest {
     }
     
     @Test
-    void assertCheckNotEmptyToThrowsException() {
-        assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkNotEmpty(null, SQLException::new));
+    void assertCheckNotEmptyWithStringToThrowsException() {
+        assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkNotEmpty((String) null, SQLException::new));
         assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkNotEmpty("", SQLException::new));
     }
     
     @Test
-    void assertCheckNotEmptyToNotThrowException() throws SQLException {
+    void assertCheckNotEmptyWithStringToNotThrowException() throws 
SQLException {
         ShardingSpherePreconditions.checkNotEmpty("foo", SQLException::new);
     }
+    
+    @Test
+    void assertCheckNotEmptyWithCollectionToThrowsException() {
+        assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkNotEmpty(Collections.emptyList(), 
SQLException::new));
+    }
+    
+    @Test
+    void assertCheckNotEmptyWithCollectionToNotThrowException() throws 
SQLException {
+        
ShardingSpherePreconditions.checkNotEmpty(Collections.singleton("foo"), 
SQLException::new);
+    }
+    
+    @Test
+    void assertCheckNotEmptyWithMapToThrowsException() {
+        assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkNotEmpty(Collections.emptyMap(), 
SQLException::new));
+    }
+    
+    @Test
+    void assertCheckNotEmptyWithMapToNotThrowException() throws SQLException {
+        
ShardingSpherePreconditions.checkNotEmpty(Collections.singletonMap("key", 
"value"), SQLException::new);
+    }
+    
+    @Test
+    void assertCheckMustEmptyWithCollectionToThrowsException() {
+        assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkMustEmpty(Collections.singleton("foo"), 
SQLException::new));
+    }
+    
+    @Test
+    void assertCheckMustEmptyWithCollectionToNotThrowException() throws 
SQLException {
+        ShardingSpherePreconditions.checkMustEmpty(Collections.emptyList(), 
SQLException::new);
+    }
+    
+    @Test
+    void assertCheckMustEmptyWithMapToThrowsException() {
+        assertThrows(SQLException.class, () -> 
ShardingSpherePreconditions.checkMustEmpty(Collections.singletonMap("key", 
"value"), SQLException::new));
+    }
+    
+    @Test
+    void assertCheckMustEmptyWithMapToNotThrowException() throws SQLException {
+        ShardingSpherePreconditions.checkMustEmpty(Collections.emptyMap(), 
SQLException::new);
+    }
 }
diff --git 
a/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/handler/CDCBackendHandler.java
 
b/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/handler/CDCBackendHandler.java
index a8375be5460..825e50df67a 100644
--- 
a/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/handler/CDCBackendHandler.java
+++ 
b/kernel/data-pipeline/scenario/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/handler/CDCBackendHandler.java
@@ -116,9 +116,9 @@ public final class CDCBackendHandler {
                     .collect(Collectors.toList())));
             tableNames = schemaTableNames;
         }
-        ShardingSpherePreconditions.checkState(!tableNames.isEmpty(), () -> 
new CDCExceptionWrapper(requestId, new 
MissingRequiredStreamDataSourceException()));
+        ShardingSpherePreconditions.checkNotEmpty(tableNames, () -> new 
CDCExceptionWrapper(requestId, new MissingRequiredStreamDataSourceException()));
         Map<String, List<DataNode>> actualDataNodesMap = 
CDCDataNodeUtils.buildDataNodesMap(database, tableNames);
-        ShardingSpherePreconditions.checkState(!actualDataNodesMap.isEmpty(), 
() -> new PipelineInvalidParameterException(String.format("Not find table %s", 
tableNames)));
+        ShardingSpherePreconditions.checkNotEmpty(actualDataNodesMap, () -> 
new PipelineInvalidParameterException(String.format("Not find table %s", 
tableNames)));
         // TODO Add globalCSNSupported to isolate it with decodeWithTx flag, 
they're different. And also update CDCJobPreparer needSorting flag.
         boolean decodeWithTx = 
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, 
database.getProtocolType()).isSupportGlobalCSN();
         StreamDataParameter parameter = new 
StreamDataParameter(requestBody.getDatabase(), new 
ArrayList<>(schemaTableNames), requestBody.getFull(), actualDataNodesMap, 
decodeWithTx);
diff --git 
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
 
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
index bbe07c9d739..8b8d6244684 100644
--- 
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
+++ 
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
@@ -183,7 +183,7 @@ public final class MigrationJobAPI implements 
TransmissionJobAPI {
     }
     
     private YamlRootConfiguration buildYamlRootConfiguration(final String 
databaseName, final Map<String, Map<String, Object>> yamlDataSources, final 
Collection<RuleConfiguration> rules) {
-        ShardingSpherePreconditions.checkState(!rules.isEmpty(), () -> new 
EmptyRuleException(databaseName));
+        ShardingSpherePreconditions.checkNotEmpty(rules, () -> new 
EmptyRuleException(databaseName));
         YamlRootConfiguration result = new YamlRootConfiguration();
         result.setDatabaseName(databaseName);
         result.setDataSources(yamlDataSources);
@@ -211,7 +211,7 @@ public final class MigrationJobAPI implements 
TransmissionJobAPI {
                 duplicateDataSourceNames.add(entry.getKey());
             }
         }
-        
ShardingSpherePreconditions.checkState(duplicateDataSourceNames.isEmpty(), () 
-> new DuplicateStorageUnitException(contextKey.getDatabaseName(), 
duplicateDataSourceNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicateDataSourceNames, 
() -> new DuplicateStorageUnitException(contextKey.getDatabaseName(), 
duplicateDataSourceNames));
         Map<String, DataSourcePoolProperties> result = new 
LinkedHashMap<>(existDataSources);
         result.putAll(propsMap);
         dataSourcePersistService.persist(contextKey, getType(), result);
@@ -226,7 +226,7 @@ public final class MigrationJobAPI implements 
TransmissionJobAPI {
     public void dropMigrationSourceResources(final PipelineContextKey 
contextKey, final Collection<String> resourceNames) {
         Map<String, DataSourcePoolProperties> metaDataDataSource = 
dataSourcePersistService.load(contextKey, getType());
         Collection<String> notExistedResources = 
resourceNames.stream().filter(each -> 
!metaDataDataSource.containsKey(each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(notExistedResources.isEmpty(), 
() -> new MissingRequiredStorageUnitsException(contextKey.getDatabaseName(), 
notExistedResources));
+        ShardingSpherePreconditions.checkMustEmpty(notExistedResources, () -> 
new MissingRequiredStorageUnitsException(contextKey.getDatabaseName(), 
notExistedResources));
         for (String each : resourceNames) {
             metaDataDataSource.remove(each);
         }
diff --git 
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
 
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
index c21d5391e66..98f5c6c03e0 100644
--- 
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
+++ 
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
@@ -85,7 +85,7 @@ public final class UnloadSingleTableExecutor implements 
DatabaseRuleAlterExecuto
     
     private void checkTableRuleExist(final String databaseName, final 
DatabaseType databaseType,
                                      final Collection<DataNode> dataNodes, 
final String tableName) {
-        ShardingSpherePreconditions.checkState(!dataNodes.isEmpty(), () -> new 
MissingRequiredRuleException("Single", databaseName, tableName));
+        ShardingSpherePreconditions.checkNotEmpty(dataNodes, () -> new 
MissingRequiredRuleException("Single", databaseName, tableName));
         DataNode dataNode = dataNodes.iterator().next();
         
ShardingSpherePreconditions.checkState(rule.getConfiguration().getTables().contains(dataNode.format(databaseType)),
 () -> new MissingRequiredRuleException("Single", databaseName, tableName));
     }
diff --git 
a/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleExecutor.java
 
b/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleExecutor.java
index 53b59a1ebca..86b705d558a 100644
--- 
a/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleExecutor.java
+++ 
b/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleExecutor.java
@@ -54,7 +54,7 @@ public final class AlterTrafficRuleExecutor implements 
GlobalRuleDefinitionExecu
     
     private void checkRuleNames(final AlterTrafficRuleStatement sqlStatement) {
         Collection<String> notExistRuleNames = 
getNotExistRuleNames(sqlStatement);
-        ShardingSpherePreconditions.checkState(notExistRuleNames.isEmpty(), () 
-> new MissingRequiredRuleException("Traffic", notExistRuleNames));
+        ShardingSpherePreconditions.checkMustEmpty(notExistRuleNames, () -> 
new MissingRequiredRuleException("Traffic", notExistRuleNames));
     }
     
     private Collection<String> getNotExistRuleNames(final 
AlterTrafficRuleStatement sqlStatement) {
diff --git 
a/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLock.java
 
b/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLock.java
index e1a3aef6b0b..5f4a4075b2c 100644
--- 
a/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLock.java
+++ 
b/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLock.java
@@ -76,7 +76,7 @@ public final class DefaultDistributedLock implements 
DistributedLock {
         if (newLockCount > 0) {
             return;
         }
-        ShardingSpherePreconditions.checkState(newLockCount == 0, () -> new 
IllegalMonitorStateException(String.format("Lock count has gone negative for 
lock: %s.", lockKey)));
+        ShardingSpherePreconditions.checkState(0 == newLockCount, () -> new 
IllegalMonitorStateException(String.format("Lock count has gone negative for 
lock: %s.", lockKey)));
         try {
             client.delete(lockKey);
         } finally {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
index ffeba07c087..bdb75e94757 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
@@ -47,6 +47,6 @@ public final class YamlProxyConfigurationChecker {
     private static void checkDataSources(final Map<String, 
YamlProxyDataSourceConfiguration> globalDataSources,
                                          final Map<String, 
YamlProxyDataSourceConfiguration> databaseDataSources, final String 
databaseName) {
         Collection<String> duplicatedDataSourceNames = 
globalDataSources.keySet().stream().filter(databaseDataSources.keySet()::contains).collect(Collectors.toSet());
-        
ShardingSpherePreconditions.checkState(duplicatedDataSourceNames.isEmpty(), () 
-> new DuplicateStorageUnitException(databaseName, duplicatedDataSourceNames));
+        ShardingSpherePreconditions.checkMustEmpty(duplicatedDataSourceNames, 
() -> new DuplicateStorageUnitException(databaseName, 
duplicatedDataSourceNames));
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataExecutor.java
index 4595cdcdfc3..f590ce5b2dd 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataExecutor.java
@@ -61,7 +61,7 @@ public final class RefreshTableMetaDataExecutor implements 
DistSQLUpdateExecutor
     }
     
     private void checkStorageUnit(final Map<String, StorageUnit> storageUnits, 
final RefreshTableMetaDataStatement sqlStatement) {
-        ShardingSpherePreconditions.checkState(!storageUnits.isEmpty(), () -> 
new EmptyStorageUnitException(database.getName()));
+        ShardingSpherePreconditions.checkNotEmpty(storageUnits, () -> new 
EmptyStorageUnitException(database.getName()));
         if (sqlStatement.getStorageUnitName().isPresent()) {
             String storageUnitName = sqlStatement.getStorageUnitName().get();
             ShardingSpherePreconditions.checkState(


Reply via email to