.
分片参数重写器
org.apache.shardingsphere.sharding.rewrite.parameter.ShardingParameterRewriterBuilder
public final class ShardingParameterRewriterBuilder implements ParameterRewriterBuilder {
private final ShardingRule shardingRule;
private final RouteContext routeContext;
@Override
public Collection<ParameterRewriter> getParameterRewriters(final SchemaMetaData schemaMetaData) {
Collection<ParameterRewriter> result = getParameterRewriters();
for (ParameterRewriter each : result) {
setUpParameterRewriters(each, schemaMetaData);
}
return result;
}
private static Collection<ParameterRewriter> getParameterRewriters() {
Collection<ParameterRewriter> result = new LinkedList<>();
result.add(new ShardingGeneratedKeyInsertValueParameterRewriter());
result.add(new ShardingPaginationParameterRewriter());
return result;
}
private void setUpParameterRewriters(final ParameterRewriter parameterRewriter, final SchemaMetaData schemaMetaData) {
if (parameterRewriter instanceof SchemaMetaDataAware) {
((SchemaMetaDataAware) parameterRewriter).setSchemaMetaData(schemaMetaData);
}
if (parameterRewriter instanceof ShardingRuleAware) {
((ShardingRuleAware) parameterRewriter).setShardingRule(shardingRule);
}
if (parameterRewriter instanceof RouteContextAware) {
((RouteContextAware) parameterRewriter).setRouteContext(routeContext);
}
}
}
.
加密参数重写器
org.apache.shardingsphere.encrypt.rewrite.parameter.EncryptParameterRewriterBuilder
public final class EncryptParameterRewriterBuilder implements ParameterRewriterBuilder {
private final EncryptRule encryptRule;
private final boolean queryWithCipherColumn;
@Override
public Collection<ParameterRewriter> getParameterRewriters(final SchemaMetaData schemaMetaData) {
Collection<ParameterRewriter> result = getParameterRewriters();
for (ParameterRewriter each : result) {
setUpParameterRewriters(each, schemaMetaData);
}
return result;
}
private Collection<ParameterRewriter> getParameterRewriters() {
Collection<ParameterRewriter> result = new LinkedList<>();
result.add(new EncryptAssignmentParameterRewriter());
result.add(new EncryptPredicateParameterRewriter());
result.add(new EncryptInsertValueParameterRewriter());
result.add(new EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter());
return result;
}
private void setUpParameterRewriters(final ParameterRewriter parameterRewriter, final SchemaMetaData schemaMetaData) {
if (parameterRewriter instanceof SchemaMetaDataAware) {
((SchemaMetaDataAware) parameterRewriter).setSchemaMetaData(schemaMetaData);
}
if (parameterRewriter instanceof EncryptRuleAware) {
((EncryptRuleAware) parameterRewriter).setEncryptRule(encryptRule);
}
if (parameterRewriter instanceof QueryWithCipherColumnAware) {
((QueryWithCipherColumnAware) parameterRewriter).setQueryWithCipherColumn(queryWithCipherColumn);
}
}
}
.