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

panjuan 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 12bcb2f3300 Optimize error code for encrypt. (#23335)
12bcb2f3300 is described below

commit 12bcb2f3300dba1314586b996fbb0a2196b1b78a
Author: Chuxin Chen <[email protected]>
AuthorDate: Thu Jan 5 11:42:06 2023 +0800

    Optimize error code for encrypt. (#23335)
    
    * Optimize error code for encrypt.
    
    * Optimize error code for encrypt.
---
 .../checker/EncryptRuleConfigurationChecker.java   | 41 ++++++++++++----------
 ...ncryptAssistedQueryColumnNotFoundException.java | 37 +++++++++++++++++++
 ...yptAssistedQueryEncryptorNotFoundException.java | 33 +++++++++++++++++
 .../EncryptCipherColumnNotFoundException.java      | 33 +++++++++++++++++
 .../EncryptEncryptorNotFoundException.java         | 33 +++++++++++++++++
 .../EncryptLikeQueryColumnNotFoundException.java   | 37 +++++++++++++++++++
 ...EncryptLikeQueryEncryptorNotFoundException.java | 33 +++++++++++++++++
 .../metadata/EncryptTableNotFoundException.java    | 33 +++++++++++++++++
 .../dal/show/EncryptShowColumnsMergedResult.java   |  6 ++--
 .../show/EncryptShowCreateTableMergedResult.java   |  6 ++--
 .../EncryptInsertValueParameterRewriter.java       |  8 +++--
 ...ptForUseDefaultInsertColumnsTokenGenerator.java |  8 +++--
 .../shardingsphere/encrypt/rule/EncryptRule.java   | 14 +++++---
 .../EncryptRuleConfigurationCheckerTest.java       |  7 ++--
 14 files changed, 293 insertions(+), 36 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
index f5d504ba70b..84dbdd314eb 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
@@ -17,14 +17,20 @@
 
 package org.apache.shardingsphere.encrypt.checker;
 
-import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
 import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryColumnNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryEncryptorNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptCipherColumnNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptEncryptorNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryColumnNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryEncryptorNotFoundException;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 
 import javax.sql.DataSource;
 import java.util.Collection;
@@ -51,36 +57,33 @@ public final class EncryptRuleConfigurationChecker 
implements RuleConfigurationC
     }
     
     private void checkCipherColumnConfiguration(final String databaseName, 
final Collection<String> encryptors, final EncryptColumnRuleConfiguration 
column) {
-        
Preconditions.checkState(!Strings.isNullOrEmpty(column.getCipherColumn()),
-                "Cipher column of `%s` can not be null in database `%s`.", 
column.getLogicColumn(), databaseName);
-        
Preconditions.checkState(!Strings.isNullOrEmpty(column.getEncryptorName()),
-                "Encryptor name of `%s` can not be null in database `%s`.", 
column.getLogicColumn(), databaseName);
-        
Preconditions.checkState(encryptors.contains(column.getEncryptorName()),
-                "Can not find encryptor `%s` in database `%s`.", 
column.getEncryptorName(), databaseName);
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(column.getCipherColumn()),
 () -> new EncryptCipherColumnNotFoundException(column.getLogicColumn(), 
databaseName));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(column.getEncryptorName()),
+                () -> new 
EncryptEncryptorNotFoundException(String.format("Encryptor name of `%s` can not 
be null in database `%s`.", column.getLogicColumn(), databaseName)));
+        
ShardingSpherePreconditions.checkState(encryptors.contains(column.getEncryptorName()),
+                () -> new EncryptEncryptorNotFoundException(String.format("Can 
not find encryptor `%s` in database `%s`.", column.getEncryptorName(), 
databaseName)));
     }
     
     private void checkAssistColumnConfiguration(final String databaseName, 
final Collection<String> encryptors, final EncryptColumnRuleConfiguration 
column) {
         if (Strings.isNullOrEmpty(column.getAssistedQueryColumn()) && 
Strings.isNullOrEmpty(column.getAssistedQueryEncryptorName())) {
             return;
         }
-        
Preconditions.checkState(!Strings.isNullOrEmpty(column.getAssistedQueryColumn()),
-                "Assisted query column of `%s` can not be null in database 
`%s`.", column.getLogicColumn(), databaseName);
-        
Preconditions.checkState(!Strings.isNullOrEmpty(column.getAssistedQueryEncryptorName()),
-                "Assisted query encryptor name of `%s` can not be null in 
database `%s`.", column.getLogicColumn(), databaseName);
-        
Preconditions.checkState(encryptors.contains(column.getAssistedQueryEncryptorName()),
-                "Can not find assisted query encryptor `%s` in database 
`%s`.", column.getAssistedQueryEncryptorName(), databaseName);
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(column.getAssistedQueryColumn()),
 () -> new EncryptAssistedQueryColumnNotFoundException(column.getLogicColumn(), 
databaseName));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(column.getAssistedQueryEncryptorName()),
 () -> new EncryptAssistedQueryEncryptorNotFoundException(
+                String.format("Assisted query encryptor name of `%s` can not 
be null in database `%s`.", column.getLogicColumn(), databaseName)));
+        
ShardingSpherePreconditions.checkState(encryptors.contains(column.getAssistedQueryEncryptorName()),
 () -> new EncryptAssistedQueryEncryptorNotFoundException(
+                String.format("Can not find assisted query encryptor `%s` in 
database `%s`.", column.getAssistedQueryEncryptorName(), databaseName)));
     }
     
     private void checkLikeColumnConfiguration(final String databaseName, final 
Collection<String> encryptors, final EncryptColumnRuleConfiguration column) {
         if (Strings.isNullOrEmpty(column.getLikeQueryColumn()) && 
Strings.isNullOrEmpty(column.getLikeQueryEncryptorName())) {
             return;
         }
-        
Preconditions.checkState(!Strings.isNullOrEmpty(column.getLikeQueryColumn()),
-                "Like query column of `%s` can not be null in database `%s`.", 
column.getLogicColumn(), databaseName);
-        
Preconditions.checkState(!Strings.isNullOrEmpty(column.getLikeQueryEncryptorName()),
-                "Like query encryptor name of `%s` can not be null in database 
`%s`.", column.getLogicColumn(), databaseName);
-        
Preconditions.checkState(encryptors.contains(column.getLikeQueryEncryptorName()),
-                "Can not find like query encryptor `%s` in database `%s`.", 
column.getLikeQueryEncryptorName(), databaseName);
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(column.getLikeQueryColumn()),
 () -> new EncryptLikeQueryColumnNotFoundException(column.getLogicColumn(), 
databaseName));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(column.getLikeQueryEncryptorName()),
+                () -> new 
EncryptLikeQueryEncryptorNotFoundException(String.format("Like query encryptor 
name of `%s` can not be null in database `%s`.", column.getLogicColumn(), 
databaseName)));
+        
ShardingSpherePreconditions.checkState(encryptors.contains(column.getLikeQueryEncryptorName()),
+                () -> new 
EncryptLikeQueryEncryptorNotFoundException(String.format("Can not find like 
query encryptor `%s` in database `%s`.", column.getLikeQueryEncryptorName(), 
databaseName)));
     }
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryColumnNotFoundException.java
new file mode 100644
index 00000000000..528ba69bcdd
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryColumnNotFoundException.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt assisted query column not found exception.
+ */
+public final class EncryptAssistedQueryColumnNotFoundException extends 
EncryptSQLException {
+    
+    private static final long serialVersionUID = -4958403725374225598L;
+    
+    public EncryptAssistedQueryColumnNotFoundException(final String 
logicColumnName, final String databaseName) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "Assisted query column 
of `%s` can not be null in database `%s`.", logicColumnName, databaseName);
+    }
+    
+    public EncryptAssistedQueryColumnNotFoundException() {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "Can not find assisted 
query column Name.");
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryEncryptorNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryEncryptorNotFoundException.java
new file mode 100644
index 00000000000..9f8b7b7525b
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryEncryptorNotFoundException.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt assisted query encryptor not found exception.
+ */
+public final class EncryptAssistedQueryEncryptorNotFoundException extends 
EncryptSQLException {
+    
+    private static final long serialVersionUID = -8700683634804933320L;
+    
+    public EncryptAssistedQueryEncryptorNotFoundException(final String reason) 
{
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 6, reason);
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptCipherColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptCipherColumnNotFoundException.java
new file mode 100644
index 00000000000..1ace836944e
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptCipherColumnNotFoundException.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt cipher column not found exception.
+ */
+public final class EncryptCipherColumnNotFoundException extends 
EncryptSQLException {
+    
+    private static final long serialVersionUID = -6765795304282762539L;
+    
+    public EncryptCipherColumnNotFoundException(final String logicColumnName, 
final String databaseName) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 3, "Cipher column of `%s` 
can not be null in database `%s`.", logicColumnName, databaseName);
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
new file mode 100644
index 00000000000..146b3fd226d
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt encryptor not found exception.
+ */
+public final class EncryptEncryptorNotFoundException extends 
EncryptSQLException {
+    
+    private static final long serialVersionUID = -4847495252826650747L;
+    
+    public EncryptEncryptorNotFoundException(final String reason) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, reason);
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryColumnNotFoundException.java
new file mode 100644
index 00000000000..3530317828d
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryColumnNotFoundException.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt like query column not found exception.
+ */
+public final class EncryptLikeQueryColumnNotFoundException extends 
EncryptSQLException {
+    
+    private static final long serialVersionUID = -1628043793867162797L;
+    
+    public EncryptLikeQueryColumnNotFoundException(final String 
logicColumnName, final String databaseName) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 7, "Like query column of 
`%s` can not be null in database `%s`.", logicColumnName, databaseName);
+    }
+    
+    public EncryptLikeQueryColumnNotFoundException() {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 7, "Can not find like 
query column Name.");
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryEncryptorNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryEncryptorNotFoundException.java
new file mode 100644
index 00000000000..aac5019c3d8
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryEncryptorNotFoundException.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt like query encryptor not found exception.
+ */
+public final class EncryptLikeQueryEncryptorNotFoundException extends 
EncryptSQLException {
+    
+    private static final long serialVersionUID = 1620586484949188815L;
+    
+    public EncryptLikeQueryEncryptorNotFoundException(final String reason) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 8, reason);
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
new file mode 100644
index 00000000000..053d0158161
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.encrypt.exception.metadata;
+
+import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+
+/**
+ * Encrypt table not found exception.
+ */
+public final class EncryptTableNotFoundException extends EncryptSQLException {
+    
+    private static final long serialVersionUID = 8909641495852822938L;
+    
+    public EncryptTableNotFoundException(final String tableName) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 9, "Can not find encrypt 
table: %s", tableName);
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
index 7f4734822bb..fb4631a1640 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java
@@ -17,12 +17,13 @@
 
 package org.apache.shardingsphere.encrypt.merge.dal.show;
 
-import com.google.common.base.Preconditions;
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.type.TableAvailable;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
+import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 
 import java.io.InputStream;
 import java.sql.SQLException;
@@ -42,7 +43,8 @@ public abstract class EncryptShowColumnsMergedResult 
implements MergedResult {
     private final EncryptRule encryptRule;
     
     protected EncryptShowColumnsMergedResult(final SQLStatementContext<?> 
sqlStatementContext, final EncryptRule encryptRule) {
-        Preconditions.checkState(sqlStatementContext instanceof TableAvailable 
&& 1 == ((TableAvailable) sqlStatementContext).getAllTables().size());
+        ShardingSpherePreconditions.checkState(sqlStatementContext instanceof 
TableAvailable && 1 == ((TableAvailable) 
sqlStatementContext).getAllTables().size(),
+                () -> new UnsupportedEncryptSQLException("SHOW COLUMNS FOR 
MULTI TABLE"));
         tableName = ((TableAvailable) 
sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
         this.encryptRule = encryptRule;
     }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
index a1af5d0ce3b..ea2e32460c8 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
@@ -17,13 +17,14 @@
 
 package org.apache.shardingsphere.encrypt.merge.dal.show;
 
-import com.google.common.base.Preconditions;
 import com.google.common.base.Splitter;
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.type.TableAvailable;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
+import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 
 import java.io.InputStream;
 import java.sql.SQLException;
@@ -48,7 +49,8 @@ public abstract class EncryptShowCreateTableMergedResult 
implements MergedResult
     private final EncryptRule encryptRule;
     
     protected EncryptShowCreateTableMergedResult(final SQLStatementContext<?> 
sqlStatementContext, final EncryptRule encryptRule) {
-        Preconditions.checkState(sqlStatementContext instanceof TableAvailable 
&& 1 == ((TableAvailable) sqlStatementContext).getAllTables().size());
+        ShardingSpherePreconditions.checkState(sqlStatementContext instanceof 
TableAvailable && 1 == ((TableAvailable) 
sqlStatementContext).getAllTables().size(),
+                () -> new UnsupportedEncryptSQLException("SHOW CREATE TABLE 
FOR MULTI TABLE"));
         tableName = ((TableAvailable) 
sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
         this.encryptRule = encryptRule;
     }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
index b073829045b..7430324ec97 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
@@ -17,11 +17,12 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.parameter.rewriter;
 
-import com.google.common.base.Preconditions;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
 import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import org.apache.shardingsphere.encrypt.context.EncryptContextBuilder;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryColumnNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryColumnNotFoundException;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
@@ -33,6 +34,7 @@ import 
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilde
 import 
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.GroupedParameterBuilder;
 import 
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder;
 import 
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
+import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.handler.dml.InsertStatementHandler;
@@ -114,12 +116,12 @@ public final class EncryptInsertValueParameterRewriter 
implements ParameterRewri
         Collection<Object> addedParams = new LinkedList<>();
         if (null != assistEncryptor) {
             Optional<String> assistedColumnName = 
encryptRule.findAssistedQueryColumn(encryptContext.getTableName(), 
encryptContext.getColumnName());
-            Preconditions.checkArgument(assistedColumnName.isPresent(), "Can 
not find assisted query Column Name");
+            
ShardingSpherePreconditions.checkState(assistedColumnName.isPresent(), 
EncryptAssistedQueryColumnNotFoundException::new);
             addedParams.add(assistEncryptor.encrypt(originalValue, 
encryptContext));
         }
         if (null != likeEncryptor) {
             Optional<String> likeColumnName = 
encryptRule.findLikeQueryColumn(encryptContext.getTableName(), 
encryptContext.getColumnName());
-            Preconditions.checkArgument(likeColumnName.isPresent(), "Can not 
find like query column Name");
+            ShardingSpherePreconditions.checkState(likeColumnName.isPresent(), 
EncryptLikeQueryColumnNotFoundException::new);
             addedParams.add(likeEncryptor.encrypt(originalValue, 
encryptContext));
         }
         if (encryptRule.findPlainColumn(encryptContext.getTableName(), 
encryptContext.getColumnName()).isPresent()) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
index 754bbd5bd72..7a3958c5336 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
@@ -19,15 +19,17 @@ package 
org.apache.shardingsphere.encrypt.rewrite.token.generator;
 
 import com.google.common.base.Preconditions;
 import lombok.Setter;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptTableNotFoundException;
+import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.generator.OptionalSQLTokenGenerator;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.PreviousSQLTokensAware;
 import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.UseDefaultInsertColumnsToken;
+import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.InsertColumnsSegment;
 
 import java.util.Iterator;
@@ -72,7 +74,7 @@ public final class 
EncryptForUseDefaultInsertColumnsTokenGenerator implements Op
     
     private void processPreviousSQLToken(final UseDefaultInsertColumnsToken 
previousSQLToken, final InsertStatementContext insertStatementContext, final 
String tableName) {
         Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
-        Preconditions.checkState(encryptTable.isPresent());
+        ShardingSpherePreconditions.checkState(encryptTable.isPresent(), () -> 
new EncryptTableNotFoundException(tableName));
         List<String> columnNames = getColumnNames(insertStatementContext, 
encryptTable.get(), previousSQLToken.getColumns());
         previousSQLToken.getColumns().clear();
         previousSQLToken.getColumns().addAll(columnNames);
@@ -82,7 +84,7 @@ public final class 
EncryptForUseDefaultInsertColumnsTokenGenerator implements Op
         Optional<InsertColumnsSegment> insertColumnsSegment = 
insertStatementContext.getSqlStatement().getInsertColumns();
         Preconditions.checkState(insertColumnsSegment.isPresent());
         Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
-        Preconditions.checkState(encryptTable.isPresent());
+        ShardingSpherePreconditions.checkState(encryptTable.isPresent(), () -> 
new EncryptTableNotFoundException(tableName));
         return new 
UseDefaultInsertColumnsToken(insertColumnsSegment.get().getStopIndex(), 
getColumnNames(insertStatementContext, encryptTable.get(), 
insertStatementContext.getColumnNames()));
     }
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index 37b9a3d027f..deb8ba4876f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -17,12 +17,14 @@
 
 package org.apache.shardingsphere.encrypt.rule;
 
-import com.google.common.base.Preconditions;
 import lombok.Getter;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
 import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import org.apache.shardingsphere.encrypt.context.EncryptContextBuilder;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryEncryptorNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptEncryptorNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryEncryptorNotFoundException;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import org.apache.shardingsphere.encrypt.spi.context.EncryptContext;
 import 
org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithmFactory;
@@ -31,6 +33,7 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
 import org.apache.shardingsphere.infra.rule.identifier.scope.DatabaseRule;
 import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
+import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -143,7 +146,8 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     public List<Object> getEncryptValues(final String databaseName, final 
String schemaName, final String logicTable, final String logicColumn, final 
List<Object> originalValues) {
         Optional<StandardEncryptAlgorithm> encryptor = 
findEncryptor(logicTable, logicColumn);
         EncryptContext encryptContext = 
EncryptContextBuilder.build(databaseName, schemaName, logicTable, logicColumn);
-        Preconditions.checkArgument(encryptor.isPresent(), "Can not find 
StandardEncryptAlgorithm by %s.%s.", logicTable, logicColumn);
+        ShardingSpherePreconditions.checkState(encryptor.isPresent(),
+                () -> new EncryptEncryptorNotFoundException(String.format("Can 
not find StandardEncryptAlgorithm by %s.%s.", logicTable, logicColumn)));
         return getEncryptValues(encryptor.get(), originalValues, 
encryptContext);
     }
     
@@ -235,7 +239,8 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     public List<Object> getEncryptAssistedQueryValues(final String 
databaseName, final String schemaName, final String logicTable, final String 
logicColumn, final List<Object> originalValues) {
         Optional<StandardEncryptAlgorithm> encryptor = 
findAssistedQueryEncryptor(logicTable, logicColumn);
         EncryptContext encryptContext = 
EncryptContextBuilder.build(databaseName, schemaName, logicTable, logicColumn);
-        Preconditions.checkArgument(encryptor.isPresent(), "Can not find 
assist encryptor by %s.%s.", logicTable, logicColumn);
+        ShardingSpherePreconditions.checkState(encryptor.isPresent(),
+                () -> new 
EncryptAssistedQueryEncryptorNotFoundException(String.format("Can not find 
assist encryptor by %s.%s.", logicTable, logicColumn)));
         return getEncryptAssistedQueryValues(encryptor.get(), originalValues, 
encryptContext);
     }
     
@@ -260,7 +265,8 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     public List<Object> getEncryptLikeQueryValues(final String databaseName, 
final String schemaName, final String logicTable, final String logicColumn, 
final List<Object> originalValues) {
         Optional<LikeEncryptAlgorithm> encryptor = 
findLikeQueryEncryptor(logicTable, logicColumn);
         EncryptContext encryptContext = 
EncryptContextBuilder.build(databaseName, schemaName, logicTable, logicColumn);
-        Preconditions.checkArgument(encryptor.isPresent(), "Can not find like 
encryptor by %s.%s.", logicTable, logicColumn);
+        ShardingSpherePreconditions.checkState(encryptor.isPresent(),
+                () -> new 
EncryptLikeQueryEncryptorNotFoundException(String.format("Can not find like 
encryptor by %s.%s.", logicTable, logicColumn)));
         return getEncryptLikeQueryValues(encryptor.get(), originalValues, 
encryptContext);
     }
     
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
index 7694ba82182..64532a6c513 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.encrypt.checker;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptEncryptorNotFoundException;
 import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import 
org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPIRegistry;
@@ -50,7 +51,7 @@ public final class EncryptRuleConfigurationCheckerTest {
     }
     
     @SuppressWarnings({"rawtypes", "unchecked"})
-    @Test(expected = IllegalStateException.class)
+    @Test(expected = EncryptEncryptorNotFoundException.class)
     public void assertCheckWhenConfigInvalidCipherColumn() {
         EncryptRuleConfiguration config = createInvalidCipherColumnConfig();
         RuleConfigurationChecker checker = 
OrderedSPIRegistry.getRegisteredServicesByClass(RuleConfigurationChecker.class, 
Collections.singleton(config.getClass())).get(config.getClass());
@@ -66,7 +67,7 @@ public final class EncryptRuleConfigurationCheckerTest {
     }
     
     @SuppressWarnings({"rawtypes", "unchecked"})
-    @Test(expected = IllegalStateException.class)
+    @Test(expected = EncryptEncryptorNotFoundException.class)
     public void assertCheckWhenConfigInvalidAssistColumn() {
         EncryptRuleConfiguration config = createInvalidAssistColumnConfig();
         RuleConfigurationChecker checker = 
OrderedSPIRegistry.getRegisteredServicesByClass(RuleConfigurationChecker.class, 
Collections.singleton(config.getClass())).get(config.getClass());
@@ -83,7 +84,7 @@ public final class EncryptRuleConfigurationCheckerTest {
     }
     
     @SuppressWarnings({"rawtypes", "unchecked"})
-    @Test(expected = IllegalStateException.class)
+    @Test(expected = EncryptEncryptorNotFoundException.class)
     public void assertCheckWhenConfigInvalidLikeColumn() {
         EncryptRuleConfiguration config = createInvalidLikeColumnConfig();
         RuleConfigurationChecker checker = 
OrderedSPIRegistry.getRegisteredServicesByClass(RuleConfigurationChecker.class, 
Collections.singleton(config.getClass())).get(config.getClass());


Reply via email to