diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringN1qlBasedQuery.java b/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringN1qlBasedQuery.java index 96505b97..d3b269f4 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringN1qlBasedQuery.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringN1qlBasedQuery.java @@ -15,17 +15,18 @@ */ package org.springframework.data.couchbase.repository.query; -import com.couchbase.client.java.document.json.JsonValue; -import com.couchbase.client.java.query.N1qlQuery; -import com.couchbase.client.java.query.Statement; import org.springframework.data.couchbase.core.RxJavaCouchbaseOperations; +import org.springframework.data.repository.query.ParameterAccessor; +import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; +import org.springframework.data.repository.query.RepositoryQuery; +import org.springframework.data.repository.query.ReturnedType; import org.springframework.expression.EvaluationContext; import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.data.repository.query.EvaluationContextProvider; -import org.springframework.data.repository.query.ParameterAccessor; -import org.springframework.data.repository.query.RepositoryQuery; -import org.springframework.data.repository.query.ReturnedType; +import com.couchbase.client.java.document.json.JsonValue; +import com.couchbase.client.java.query.N1qlQuery; +import com.couchbase.client.java.query.Statement; + /** * A reactive StringN1qlBasedQuery {@link RepositoryQuery} for Couchbase, based on N1QL and a String statement. @@ -43,7 +44,7 @@ public class ReactiveStringN1qlBasedQuery extends ReactiveAbstractN1qlBasedQuery private final StringBasedN1qlQueryParser queryParser; private final SpelExpressionParser parser; - private final EvaluationContextProvider evaluationContextProvider; + private final QueryMethodEvaluationContextProvider evaluationContextProvider; protected String getTypeField() { return getCouchbaseOperations().getConverter().getTypeKey(); @@ -57,7 +58,7 @@ public class ReactiveStringN1qlBasedQuery extends ReactiveAbstractN1qlBasedQuery CouchbaseQueryMethod queryMethod, RxJavaCouchbaseOperations couchbaseOperations, SpelExpressionParser spelParser, - final EvaluationContextProvider evaluationContextProvider) { + QueryMethodEvaluationContextProvider evaluationContextProvider) { super(queryMethod, couchbaseOperations); this.queryParser = new StringBasedN1qlQueryParser(statement, queryMethod, diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlBasedQuery.java b/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlBasedQuery.java index 9cecde15..c0971187 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlBasedQuery.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlBasedQuery.java @@ -16,13 +16,17 @@ package org.springframework.data.couchbase.repository.query; -import static com.couchbase.client.java.query.Delete.deleteFrom; -import static com.couchbase.client.java.query.dsl.Expression.i; - -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import org.springframework.data.couchbase.core.CouchbaseOperations; +import org.springframework.data.couchbase.repository.query.support.N1qlUtils; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.repository.query.ParameterAccessor; +import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; +import org.springframework.data.repository.query.RepositoryQuery; +import org.springframework.data.repository.query.ReturnedType; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.util.Assert; import com.couchbase.client.java.document.json.JsonValue; import com.couchbase.client.java.query.N1qlQuery; @@ -30,21 +34,6 @@ import com.couchbase.client.java.query.Statement; import com.couchbase.client.java.query.dsl.path.DefaultLimitPath; import com.couchbase.client.java.query.dsl.path.DefaultOrderByPath; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.springframework.data.couchbase.core.CouchbaseOperations; -import org.springframework.data.couchbase.repository.query.support.N1qlUtils; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.repository.query.EvaluationContextProvider; -import org.springframework.data.repository.query.ParameterAccessor; -import org.springframework.data.repository.query.RepositoryQuery; -import org.springframework.data.repository.query.ReturnedType; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.util.Assert; - /** * A {@link RepositoryQuery} for Couchbase, based on N1QL and a String statement. *

@@ -64,7 +53,7 @@ import org.springframework.util.Assert; */ public class StringN1qlBasedQuery extends AbstractN1qlBasedQuery { private final SpelExpressionParser parser; - private final EvaluationContextProvider evaluationContextProvider; + private final QueryMethodEvaluationContextProvider evaluationContextProvider; private final StringBasedN1qlQueryParser queryParser; protected String getTypeField() { @@ -76,7 +65,7 @@ public class StringN1qlBasedQuery extends AbstractN1qlBasedQuery { } public StringN1qlBasedQuery(String statement, CouchbaseQueryMethod queryMethod, CouchbaseOperations couchbaseOperations, - SpelExpressionParser spelParser, final EvaluationContextProvider evaluationContextProvider) { + SpelExpressionParser spelParser, QueryMethodEvaluationContextProvider evaluationContextProvider) { super(queryMethod, couchbaseOperations); this.queryParser = new StringBasedN1qlQueryParser(statement, queryMethod, getCouchbaseOperations().getCouchbaseBucket().name(), getTypeField(), getTypeValue()); diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java b/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java index 8e3231a9..dc4b800a 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java +++ b/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java @@ -20,8 +20,6 @@ import java.io.Serializable; import java.lang.reflect.Method; import java.util.Optional; -import com.couchbase.client.java.util.features.CouchbaseFeature; - import org.springframework.core.annotation.AnnotationUtils; import org.springframework.data.couchbase.core.CouchbaseOperations; import org.springframework.data.couchbase.core.UnsupportedCouchbaseFeatureException; @@ -45,12 +43,14 @@ import org.springframework.data.repository.core.NamedQueries; import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.core.support.RepositoryFactorySupport; -import org.springframework.data.repository.query.EvaluationContextProvider; import org.springframework.data.repository.query.QueryLookupStrategy; +import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.RepositoryQuery; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.util.Assert; +import com.couchbase.client.java.util.features.CouchbaseFeature; + /** * Factory to create {@link SimpleCouchbaseRepository} instances. * @@ -202,7 +202,7 @@ public class CouchbaseRepositoryFactory extends RepositoryFactorySupport { } @Override - protected Optional getQueryLookupStrategy(QueryLookupStrategy.Key key, EvaluationContextProvider contextProvider) { + protected Optional getQueryLookupStrategy(QueryLookupStrategy.Key key, QueryMethodEvaluationContextProvider contextProvider) { return Optional.of(new CouchbaseQueryLookupStrategy(contextProvider)); } @@ -211,9 +211,9 @@ public class CouchbaseRepositoryFactory extends RepositoryFactorySupport { */ private class CouchbaseQueryLookupStrategy implements QueryLookupStrategy { - private final EvaluationContextProvider evaluationContextProvider; + private final QueryMethodEvaluationContextProvider evaluationContextProvider; - public CouchbaseQueryLookupStrategy(EvaluationContextProvider evaluationContextProvider) { + public CouchbaseQueryLookupStrategy(QueryMethodEvaluationContextProvider evaluationContextProvider) { this.evaluationContextProvider = evaluationContextProvider; } diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java b/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java index 9ad04b67..29d4be02 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java +++ b/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java @@ -19,27 +19,37 @@ import java.io.Serializable; import java.lang.reflect.Method; import java.util.Optional; -import com.couchbase.client.java.util.features.CouchbaseFeature; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.data.couchbase.core.RxJavaCouchbaseOperations; import org.springframework.data.couchbase.core.UnsupportedCouchbaseFeatureException; import org.springframework.data.couchbase.core.mapping.CouchbasePersistentEntity; import org.springframework.data.couchbase.core.mapping.CouchbasePersistentProperty; -import org.springframework.data.couchbase.core.query.*; +import org.springframework.data.couchbase.core.query.N1qlPrimaryIndexed; +import org.springframework.data.couchbase.core.query.N1qlSecondaryIndexed; +import org.springframework.data.couchbase.core.query.Query; +import org.springframework.data.couchbase.core.query.View; +import org.springframework.data.couchbase.core.query.ViewIndexed; import org.springframework.data.couchbase.repository.config.ReactiveRepositoryOperationsMapping; -import org.springframework.data.couchbase.repository.query.*; +import org.springframework.data.couchbase.repository.query.CouchbaseEntityInformation; +import org.springframework.data.couchbase.repository.query.CouchbaseQueryMethod; +import org.springframework.data.couchbase.repository.query.ReactivePartTreeN1qlBasedQuery; +import org.springframework.data.couchbase.repository.query.ReactiveSpatialViewBasedQuery; +import org.springframework.data.couchbase.repository.query.ReactiveStringN1qlBasedQuery; +import org.springframework.data.couchbase.repository.query.ReactiveViewBasedCouchbaseQuery; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.repository.core.NamedQueries; import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.core.support.ReactiveRepositoryFactorySupport; -import org.springframework.data.repository.query.EvaluationContextProvider; import org.springframework.data.repository.query.QueryLookupStrategy; +import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.RepositoryQuery; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.util.Assert; +import com.couchbase.client.java.util.features.CouchbaseFeature; + /** * @author Subhashni Balakrishnan * @author Mark Paluch @@ -189,7 +199,7 @@ public class ReactiveCouchbaseRepositoryFactory extends ReactiveRepositoryFactor } @Override - protected Optional getQueryLookupStrategy(QueryLookupStrategy.Key key, EvaluationContextProvider contextProvider) { + protected Optional getQueryLookupStrategy(QueryLookupStrategy.Key key, QueryMethodEvaluationContextProvider contextProvider) { return Optional.of(new ReactiveCouchbaseRepositoryFactory.CouchbaseQueryLookupStrategy(contextProvider)); } @@ -198,9 +208,9 @@ public class ReactiveCouchbaseRepositoryFactory extends ReactiveRepositoryFactor */ private class CouchbaseQueryLookupStrategy implements QueryLookupStrategy { - private final EvaluationContextProvider evaluationContextProvider; + private final QueryMethodEvaluationContextProvider evaluationContextProvider; - public CouchbaseQueryLookupStrategy(EvaluationContextProvider evaluationContextProvider) { + public CouchbaseQueryLookupStrategy(QueryMethodEvaluationContextProvider evaluationContextProvider) { this.evaluationContextProvider = evaluationContextProvider; }