diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveCassandraTemplate.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveCassandraTemplate.java index 7f2b051d8..dbcdb32b9 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveCassandraTemplate.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveCassandraTemplate.java @@ -556,7 +556,7 @@ public class ReactiveCassandraTemplate implements ReactiveCassandraOperations, A * @see org.springframework.data.cassandra.core.ReactiveUpdateOperation#update(java.lang.Class) */ @Override - public ReactiveUpdate update(Class domainType) { + public ReactiveUpdate update(Class domainType) { return new ReactiveUpdateOperationSupport(this).update(domainType); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperation.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperation.java index 539e09e88..7495de1e9 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperation.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperation.java @@ -60,12 +60,12 @@ public interface ReactiveUpdateOperation { * @throws IllegalArgumentException if {@link Class domainType} is {@literal null}. * @see ReactiveUpdate */ - ReactiveUpdate update(Class domainType); + ReactiveUpdate update(Class domainType); /** * Table override (optional). */ - interface UpdateWithTable { + interface UpdateWithTable { /** * Explicitly set the {@link String name} of the table on which to perform the update. @@ -78,7 +78,7 @@ public interface ReactiveUpdateOperation { * @see #inTable(CqlIdentifier) * @see UpdateWithQuery */ - default UpdateWithQuery inTable(String table) { + default UpdateWithQuery inTable(String table) { Assert.hasText(table, "Table name must not be null or empty"); @@ -96,14 +96,14 @@ public interface ReactiveUpdateOperation { * @see org.springframework.data.cassandra.core.cql.CqlIdentifier * @see UpdateWithQuery */ - UpdateWithQuery inTable(CqlIdentifier table); + UpdateWithQuery inTable(CqlIdentifier table); } /** * Define a {@link Query} used as the filter for the {@link Update}. */ - interface UpdateWithQuery { + interface UpdateWithQuery { /** * Filter rows to update by the given {@link Query}. @@ -114,14 +114,14 @@ public interface ReactiveUpdateOperation { * @see org.springframework.data.cassandra.core.query.Query * @see TerminatingUpdate */ - TerminatingUpdate matching(Query query); + TerminatingUpdate matching(Query query); } /** * Trigger {@code UPDATE} execution by calling one of the terminating methods. */ - interface TerminatingUpdate { + interface TerminatingUpdate { /** * Update all matching rows in the table. @@ -132,13 +132,12 @@ public interface ReactiveUpdateOperation { * @see reactor.core.publisher.Mono */ Mono apply(Update update); - } /** * The {@link ReactiveUpdate} interface provides methods for constructing {@code UPDATE} operations * in a fluent way. */ - interface ReactiveUpdate extends UpdateWithTable, UpdateWithQuery {} + interface ReactiveUpdate extends UpdateWithTable, UpdateWithQuery {} } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperationSupport.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperationSupport.java index 9bd4fabd6..dd84ef5b9 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperationSupport.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/ReactiveUpdateOperationSupport.java @@ -46,20 +46,20 @@ class ReactiveUpdateOperationSupport implements ReactiveUpdateOperation { * @see org.springframework.data.cassandra.core.ReactiveUpdateOperation#update(java.lang.Class) */ @Override - public ReactiveUpdate update(Class domainType) { + public ReactiveUpdate update(Class domainType) { Assert.notNull(domainType, "DomainType must not be null"); - return new ReactiveUpdateSupport<>(this.template, domainType, Query.empty(), null); + return new ReactiveUpdateSupport(this.template, domainType, Query.empty(), null); } @RequiredArgsConstructor @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true) - static class ReactiveUpdateSupport implements ReactiveUpdate, TerminatingUpdate { + static class ReactiveUpdateSupport implements ReactiveUpdate, TerminatingUpdate { @NonNull ReactiveCassandraTemplate template; - @NonNull Class domainType; + @NonNull Class domainType; @NonNull Query query; @@ -69,22 +69,22 @@ class ReactiveUpdateOperationSupport implements ReactiveUpdateOperation { * @see org.springframework.data.cassandra.core.ReactiveUpdateOperation.UpdateWithTable#inTable(org.springframework.data.cassandra.core.cql.CqlIdentifier) */ @Override - public UpdateWithQuery inTable(CqlIdentifier tableName) { + public UpdateWithQuery inTable(CqlIdentifier tableName) { Assert.notNull(tableName, "Table name must not be null"); - return new ReactiveUpdateSupport<>(this.template, this.domainType, this.query, tableName); + return new ReactiveUpdateSupport(this.template, this.domainType, this.query, tableName); } /* (non-Javadoc) * @see org.springframework.data.cassandra.core.ReactiveUpdateOperation.UpdateWithQuery#matching(org.springframework.data.cassandra.core.query.Query) */ @Override - public TerminatingUpdate matching(Query query) { + public TerminatingUpdate matching(Query query) { Assert.notNull(query, "Query must not be null"); - return new ReactiveUpdateSupport<>(this.template, this.domainType, query, this.tableName); + return new ReactiveUpdateSupport(this.template, this.domainType, query, this.tableName); } /* (non-Javadoc) diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Query.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Query.java index 4a05ccd05..deca2a3b5 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Query.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Query.java @@ -15,9 +15,8 @@ */ package org.springframework.data.cassandra.core.query; -import static java.util.stream.StreamSupport.stream; -import static org.springframework.util.ObjectUtils.nullSafeEquals; -import static org.springframework.util.ObjectUtils.nullSafeHashCode; +import static java.util.stream.StreamSupport.*; +import static org.springframework.util.ObjectUtils.*; import java.util.ArrayList; import java.util.Arrays; @@ -46,6 +45,9 @@ import com.datastax.driver.core.PagingState; */ public class Query implements Filter { + private static final Query EMPTY = new Query(Collections.emptyList(), Columns.empty(), Sort.unsorted(), + Optional.empty(), Optional.empty(), Optional.empty(), false); + private final boolean allowFiltering; private final Columns columns; @@ -79,8 +81,7 @@ public class Query implements Filter { * @return the new {@link Query}. */ public static Query empty() { - return new Query(Collections.emptyList(), Columns.empty(), Sort.unsorted(), Optional.empty(), Optional.empty(), - Optional.empty(), false); + return EMPTY; } /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Update.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Update.java index 42e7d89f6..f89b8ade9 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Update.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Update.java @@ -41,6 +41,8 @@ import org.springframework.util.StringUtils; */ public class Update { + private static final Update EMPTY = new Update(Collections.emptyMap()); + private final Map updateOperations; private Update(Map updateOperations) { @@ -53,7 +55,7 @@ public class Update { * @return a new {@link Update}. */ public static Update empty() { - return new Update(Collections.emptyMap()); + return EMPTY; } /**