This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 ff0b3ba92dc Move EncryptAssignmentTokenGenerator to assignment package
(#32335)
ff0b3ba92dc is described below
commit ff0b3ba92dc0e70af8b9da6ca2b80858545b2679
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jul 30 18:13:58 2024 +0800
Move EncryptAssignmentTokenGenerator to assignment package (#32335)
* Refactor EncryptAssignmentTokenGenerator
* Move EncryptAssignmentTokenGenerator to assignment package
* Move EncryptAssignmentTokenGenerator to assignment package
* Move EncryptAssignmentTokenGenerator to assignment package
---
.../rewrite/token/EncryptTokenGenerateBuilder.java | 4 ++--
.../EncryptAssignmentTokenGenerator.java | 16 +++++++---------
.../EncryptAssignmentTokenGeneratorTest.java | 5 +++--
.../EncryptProjectionTokenGeneratorTest.java | 3 +--
4 files changed, 13 insertions(+), 15 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
index c661d612735..9d97562f480 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
import
org.apache.shardingsphere.encrypt.rewrite.token.generator.EncryptAlterTableTokenGenerator;
-import
org.apache.shardingsphere.encrypt.rewrite.token.generator.EncryptAssignmentTokenGenerator;
+import
org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment.EncryptAssignmentTokenGenerator;
import
org.apache.shardingsphere.encrypt.rewrite.token.generator.EncryptCreateTableTokenGenerator;
import
org.apache.shardingsphere.encrypt.rewrite.token.generator.EncryptGroupByItemTokenGenerator;
import
org.apache.shardingsphere.encrypt.rewrite.token.generator.EncryptIndexColumnTokenGenerator;
@@ -82,8 +82,8 @@ public final class EncryptTokenGenerateBuilder implements
SQLTokenGeneratorBuild
}
private void addSQLTokenGenerator(final Collection<SQLTokenGenerator>
sqlTokenGenerators, final SQLTokenGenerator toBeAddedSQLTokenGenerator) {
+ setUpSQLTokenGenerator(toBeAddedSQLTokenGenerator);
if
(toBeAddedSQLTokenGenerator.isGenerateSQLToken(sqlStatementContext)) {
- setUpSQLTokenGenerator(toBeAddedSQLTokenGenerator);
sqlTokenGenerators.add(toBeAddedSQLTokenGenerator);
}
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptAssignmentTokenGenerator.java
similarity index 92%
rename from
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
rename to
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptAssignmentTokenGenerator.java
index 26500f318a5..38e6da4f465 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptAssignmentTokenGenerator.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.encrypt.rewrite.token.generator;
+package org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment;
import com.google.common.base.Preconditions;
import lombok.Setter;
@@ -61,24 +61,22 @@ public final class EncryptAssignmentTokenGenerator
implements CollectionSQLToken
@Override
public boolean isGenerateSQLToken(final SQLStatementContext
sqlStatementContext) {
- return sqlStatementContext instanceof UpdateStatementContext ||
sqlStatementContext instanceof InsertStatementContext
- && (((InsertStatementContext)
sqlStatementContext).getSqlStatement()).getSetAssignment().isPresent();
+ return (sqlStatementContext instanceof UpdateStatementContext
+ || sqlStatementContext instanceof InsertStatementContext &&
(((InsertStatementContext)
sqlStatementContext).getSqlStatement()).getSetAssignment().isPresent())
+ && encryptRule.findEncryptTable(((TableAvailable)
sqlStatementContext).getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue()).isPresent();
}
@Override
public Collection<SQLToken> generateSQLTokens(final SQLStatementContext
sqlStatementContext) {
String tableName = ((TableAvailable)
sqlStatementContext).getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue();
- Optional<EncryptTable> encryptTable =
encryptRule.findEncryptTable(tableName);
- if (!encryptTable.isPresent()) {
- return Collections.emptyList();
- }
+ EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
Collection<SQLToken> result = new LinkedList<>();
String schemaName = ((TableAvailable)
sqlStatementContext).getTablesContext().getSchemaName()
.orElseGet(() -> new
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(databaseName));
for (ColumnAssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
String columnName =
each.getColumns().get(0).getIdentifier().getValue();
- if (encryptTable.get().isEncryptColumn(columnName)) {
- generateSQLToken(schemaName, encryptTable.get().getTable(),
encryptTable.get().getEncryptColumn(columnName), each).ifPresent(result::add);
+ if (encryptTable.isEncryptColumn(columnName)) {
+ generateSQLToken(schemaName, encryptTable.getTable(),
encryptTable.getEncryptColumn(columnName), each).ifPresent(result::add);
}
}
return result;
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptAssignmentTokenGeneratorTest.java
similarity index 98%
rename from
features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
rename to
features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptAssignmentTokenGeneratorTest.java
index a2770842458..393c9f06908 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptAssignmentTokenGeneratorTest.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.encrypt.rewrite.token.generator;
+package org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
@@ -79,6 +79,7 @@ class EncryptAssignmentTokenGeneratorTest {
when(encryptTable.isEncryptColumn("columns")).thenReturn(true);
when(encryptTable.getEncryptColumn("columns")).thenReturn(mock(EncryptColumn.class,
RETURNS_DEEP_STUBS));
when(result.findEncryptTable("table")).thenReturn(Optional.of(encryptTable));
+ when(result.getEncryptTable("table")).thenReturn(encryptTable);
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGeneratorTest.java
similarity index 99%
rename from
features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
rename to
features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGeneratorTest.java
index da194fdcfcd..1d05b5b8952 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGeneratorTest.java
@@ -15,9 +15,8 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.encrypt.rewrite.token.generator;
+package org.apache.shardingsphere.encrypt.rewrite.token.generator.projection;
-import
org.apache.shardingsphere.encrypt.rewrite.token.generator.projection.EncryptProjectionTokenGenerator;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;