diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java index c58ed5bd8..5d4cba18e 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java @@ -15,9 +15,6 @@ */ package org.springframework.data.cassandra.core; -import edu.umd.cs.findbugs.annotations.NonNull; -import edu.umd.cs.findbugs.annotations.Nullable; - import java.beans.PropertyDescriptor; import java.util.ArrayList; import java.util.Arrays; @@ -65,6 +62,8 @@ import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.ProjectionInformation; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; @@ -87,13 +86,14 @@ import com.datastax.oss.driver.api.querybuilder.update.UpdateStart; import com.datastax.oss.driver.api.querybuilder.update.UpdateWithAssignments; /** - * Statement factory to render {@link com.datastax.oss.driver.api.core.cql.Statement} from {@link Query} and - * {@link Update} objects. + * Factory to render {@link com.datastax.oss.driver.api.core.cql.Statement} objects + * from {@link Query} and {@link Update} objects. * * @author Mark Paluch * @author John Blum - * @see Query - * @see Update + * @see com.datastax.oss.driver.api.core.cql.Statement + * @see org.springframework.data.cassandra.core.query.Query + * @see org.springframework.data.cassandra.core.query.Update * @since 2.0 */ public class StatementFactory { @@ -202,7 +202,7 @@ public class StatementFactory { } /** - * Create an {@literal SELECT} statement by mapping {@code id} to {@link SELECT … WHERE} considering + * Create an {@literal SELECT} statement by mapping {@code id} to {@literal SELECT … WHERE} considering * {@link UpdateOptions}. * * @param id must not be {@literal null}. @@ -217,9 +217,8 @@ public class StatementFactory { cassandraConverter.write(id, where, persistentEntity); - return StatementBuilder.of(QueryBuilder.selectFrom(tableName).all().limit(1)).bind((statement, factory) -> { - return statement.where(toRelations(where, factory)); - }); + return StatementBuilder.of(QueryBuilder.selectFrom(tableName).all().limit(1)) + .bind((statement, factory) -> statement.where(toRelations(where, factory))); } /** @@ -374,27 +373,22 @@ public class StatementFactory { Update mappedUpdate = getUpdateMapper().getMappedObject(update, persistentEntity); - StatementBuilder builder = update(tableName, mappedUpdate, - filter); + StatementBuilder builder = + update(tableName, mappedUpdate, filter); - query.getQueryOptions() // - .filter(UpdateOptions.class::isInstance) // - .map(UpdateOptions.class::cast) // - .map(UpdateOptions::getIfCondition) // - .ifPresent(criteriaDefinitions -> { - applyUpdateIfCondition(builder, criteriaDefinitions); - }); + query.getQueryOptions() + .filter(UpdateOptions.class::isInstance) + .map(UpdateOptions.class::cast) + .map(UpdateOptions::getIfCondition) + .ifPresent(criteriaDefinitions -> applyUpdateIfCondition(builder, criteriaDefinitions)); - query.getQueryOptions() // - .filter(WriteOptions.class::isInstance) // - .map(WriteOptions.class::cast) // - .ifPresent(writeOptions -> { - builder.apply(statement -> addWriteOptions(statement, writeOptions)); - }); + query.getQueryOptions() + .filter(WriteOptions.class::isInstance) + .map(WriteOptions.class::cast) + .ifPresent(writeOptions -> builder.apply(statement -> addWriteOptions(statement, writeOptions))); - query.getQueryOptions().ifPresent(options -> { - builder.transform(statementBuilder -> QueryOptionsUtil.addQueryOptions(statementBuilder, options)); - }); + query.getQueryOptions().ifPresent(options -> + builder.transform(statementBuilder -> QueryOptionsUtil.addQueryOptions(statementBuilder, options))); return builder; } @@ -446,17 +440,15 @@ public class StatementFactory { where.forEach((cqlIdentifier, o) -> object.remove(cqlIdentifier)); StatementBuilder builder = StatementBuilder - .of(QueryBuilder.update(tableName).set().where()).bind((statement, factory) -> { - return ((UpdateWithAssignments) statement).set(toAssignments(object, factory)) - .where(toRelations(where, factory)); - }).apply(update -> addWriteOptions(update, options)); + .of(QueryBuilder.update(tableName).set().where()) + .bind((statement, factory) -> ((UpdateWithAssignments) statement).set(toAssignments(object, factory)) + .where(toRelations(where, factory))) + .apply(update -> addWriteOptions(update, options)); - Optional.of(options).filter(UpdateOptions.class::isInstance) // - .map(UpdateOptions.class::cast) // - .map(UpdateOptions::getIfCondition) // - .ifPresent(criteriaDefinitions -> { - applyUpdateIfCondition(builder, criteriaDefinitions); - }); + Optional.of(options).filter(UpdateOptions.class::isInstance) + .map(UpdateOptions.class::cast) + .map(UpdateOptions::getIfCondition) + .ifPresent(criteriaDefinitions -> applyUpdateIfCondition(builder, criteriaDefinitions)); builder.transform(statement -> QueryOptionsUtil.addQueryOptions(statement, options)); @@ -464,11 +456,11 @@ public class StatementFactory { } /** - * Create an {@literal DELETE} statement by mapping {@code id} to {@link SELECT … WHERE} considering - * {@link UpdateOptions}. + * Create an {@literal DELETE} statement by mapping {@code id} to {@literal SELECT … WHERE} + * considering {@link UpdateOptions}. * * @param id must not be {@literal null}. - * @param entityWriter must not be {@literal null}. + * @param persistentEntity must not be {@literal null}. * @param tableName must not be {@literal null}. * @return the delete builder. */ @@ -479,9 +471,8 @@ public class StatementFactory { cassandraConverter.write(id, where, persistentEntity); - return StatementBuilder.of(QueryBuilder.deleteFrom(tableName).where()).bind((statement, factory) -> { - return statement.where(toRelations(where, factory)); - }); + return StatementBuilder.of(QueryBuilder.deleteFrom(tableName).where()) + .bind((statement, factory) -> statement.where(toRelations(where, factory))); } /** @@ -520,24 +511,19 @@ public class StatementFactory { StatementBuilder builder = delete(columnNames, tableName, filter); - query.getQueryOptions() // - .filter(DeleteOptions.class::isInstance) // - .map(DeleteOptions.class::cast) // - .map(DeleteOptions::getIfCondition) // - .ifPresent(criteriaDefinitions -> { - applyDeleteIfCondition(builder, criteriaDefinitions); - }); + query.getQueryOptions() + .filter(DeleteOptions.class::isInstance) + .map(DeleteOptions.class::cast) + .map(DeleteOptions::getIfCondition) + .ifPresent(criteriaDefinitions -> applyDeleteIfCondition(builder, criteriaDefinitions)); - query.getQueryOptions() // - .filter(WriteOptions.class::isInstance) // - .map(WriteOptions.class::cast) // - .ifPresent(writeOptions -> { - builder.apply(statement -> addWriteOptions(statement, writeOptions)); - }); + query.getQueryOptions() + .filter(WriteOptions.class::isInstance) + .map(WriteOptions.class::cast) + .ifPresent(writeOptions -> builder.apply(statement -> addWriteOptions(statement, writeOptions))); - query.getQueryOptions().ifPresent(options -> { - builder.transform(statement -> QueryOptionsUtil.addQueryOptions(statement, options)); - }); + query.getQueryOptions().ifPresent(options -> + builder.transform(statement -> QueryOptionsUtil.addQueryOptions(statement, options))); return builder; } @@ -563,22 +549,18 @@ public class StatementFactory { entityWriter.write(entity, where); StatementBuilder builder = StatementBuilder.of(QueryBuilder.deleteFrom(tableName).where()) - .bind((statement, factory) -> { - return statement.where(toRelations(where, factory)); - }); + .bind((statement, factory) -> statement.where(toRelations(where, factory))); - Optional.of(options).filter(WriteOptions.class::isInstance) // - .map(WriteOptions.class::cast) // - .ifPresent(it -> { - builder.apply(statement -> addWriteOptions(statement, it)); - }); + Optional.of(options) + .filter(WriteOptions.class::isInstance) + .map(WriteOptions.class::cast) + .ifPresent(it -> builder.apply(statement -> addWriteOptions(statement, it))); - Optional.of(options).filter(DeleteOptions.class::isInstance) // - .map(DeleteOptions.class::cast) // - .map(DeleteOptions::getIfCondition) // - .ifPresent(criteriaDefinitions -> { - applyDeleteIfCondition(builder, criteriaDefinitions); - }); + Optional.of(options) + .filter(DeleteOptions.class::isInstance) + .map(DeleteOptions.class::cast) + .map(DeleteOptions::getIfCondition) + .ifPresent(criteriaDefinitions -> applyDeleteIfCondition(builder, criteriaDefinitions)); builder.transform(statement -> QueryOptionsUtil.addQueryOptions(statement, options)); @@ -625,7 +607,8 @@ public class StatementFactory { private StatementBuilder select = createSelectAndOrder(selectors, tableName, filter, sort); @@ -638,14 +621,11 @@ public class StatementFactory { select.apply(Select::allowFiltering); } - select.onBuild(statementBuilder -> { + select.onBuild(statementBuilder -> + query.getPagingState().ifPresent(statementBuilder::setPagingState)); - query.getPagingState().ifPresent(statementBuilder::setPagingState); - }); - - query.getQueryOptions().ifPresent(it -> { - select.transform(statement -> QueryOptionsUtil.addQueryOptions(statement, it)); - }); + query.getQueryOptions().ifPresent(it -> + select.transform(statement -> QueryOptionsUtil.addQueryOptions(statement, it))); return select; } @@ -660,24 +640,24 @@ public class StatementFactory { } else { List mappedSelectors = selectors.stream() - .map(selector -> { - return selector.getAlias().map(it -> getSelection(selector).as(it)).orElseGet(() -> getSelection(selector)); - }).collect(Collectors.toList()); + .map(selector -> selector.getAlias().map(it -> getSelection(selector).as(it)) + .orElseGet(() -> getSelection(selector))) + .collect(Collectors.toList()); select = QueryBuilder.selectFrom(from).selectors(mappedSelectors); } StatementBuilder