Skip to content

Commit c6123d6

Browse files
committed
#80 refactor to own type instead of pair
1 parent a8c4871 commit c6123d6

File tree

5 files changed

+33
-13
lines changed

5 files changed

+33
-13
lines changed

src/main/java/com/arangodb/springframework/repository/query/AbstractArangoQuery.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.slf4j.LoggerFactory;
3030
import org.springframework.data.repository.query.RepositoryQuery;
3131
import org.springframework.data.repository.query.ResultProcessor;
32-
import org.springframework.data.util.Pair;
3332
import org.springframework.util.Assert;
3433

3534
import com.arangodb.ArangoCursor;
@@ -79,16 +78,16 @@ public Object execute(final Object[] parameters) {
7978
options.fullCount(true);
8079
}
8180

82-
final Pair<String, ? extends Collection<String>> queryAndCollection = createQuery(accessor, bindVars);
81+
final QueryWithCollections queryAndCollection = createQuery(accessor, bindVars);
8382
if (options.getStreamTransactionId() == null && transactionBridge != null) {
84-
options.streamTransactionId(transactionBridge.getCurrentTransaction(queryAndCollection.getSecond()));
83+
options.streamTransactionId(transactionBridge.getCurrentTransaction(queryAndCollection.getCollections()));
8584
}
8685

8786

8887
final ResultProcessor processor = method.getResultProcessor().withDynamicProjection(accessor);
8988
final Class<?> typeToRead = getTypeToRead(processor);
9089

91-
final ArangoCursor<?> result = operations.query(queryAndCollection.getFirst(), bindVars, options, typeToRead);
90+
final ArangoCursor<?> result = operations.query(queryAndCollection.getQuery(), bindVars, options, typeToRead);
9291
logWarningsIfNecessary(result);
9392
return processor.processResult(convertResult(result, accessor));
9493
}
@@ -115,7 +114,7 @@ public ArangoQueryMethod getQueryMethod() {
115114
* the binding parameter map
116115
* @return a pair of the created AQL query and all collection names
117116
*/
118-
protected abstract Pair<String, ? extends Collection<String>> createQuery(
117+
protected abstract QueryWithCollections createQuery(
119118
ArangoParameterAccessor accessor,
120119
Map<String, Object> bindVars);
121120

src/main/java/com/arangodb/springframework/repository/query/DerivedArangoQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public DerivedArangoQuery(final ArangoQueryMethod method, final ArangoOperations
5353
}
5454

5555
@Override
56-
protected Pair<String, ? extends Collection<String>> createQuery(
56+
protected QueryWithCollections createQuery(
5757
final ArangoParameterAccessor accessor,
5858
final Map<String, Object> bindVars) {
5959

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.arangodb.springframework.repository.query;
2+
3+
import java.util.Collection;
4+
5+
public class QueryWithCollections {
6+
7+
private final String query;
8+
private final Collection<String> collections;
9+
10+
public QueryWithCollections(String query, Collection<String> collections) {
11+
this.query = query;
12+
this.collections = collections;
13+
}
14+
15+
public String getQuery() {
16+
return query;
17+
}
18+
19+
public Collection<String> getCollections() {
20+
return collections;
21+
}
22+
}

src/main/java/com/arangodb/springframework/repository/query/StringBasedArangoQuery.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springframework.context.expression.BeanFactoryAccessor;
3030
import org.springframework.context.expression.BeanFactoryResolver;
3131
import org.springframework.core.annotation.AnnotationUtils;
32-
import org.springframework.data.util.Pair;
3332
import org.springframework.expression.Expression;
3433
import org.springframework.expression.ParserContext;
3534
import org.springframework.expression.spel.standard.SpelExpressionParser;
@@ -98,13 +97,13 @@ public StringBasedArangoQuery(final String query, final ArangoQueryMethod method
9897
}
9998

10099
@Override
101-
protected Pair<String, ? extends Collection<String>> createQuery(
100+
protected QueryWithCollections createQuery(
102101
final ArangoParameterAccessor accessor,
103102
final Map<String, Object> bindVars) {
104103

105104
extractBindVars(accessor, bindVars);
106105

107-
return Pair.of(prepareQuery(accessor), allCollectionNames(bindVars));
106+
return new QueryWithCollections(prepareQuery(accessor), allCollectionNames(bindVars));
108107
}
109108

110109
private Collection<String> allCollectionNames(Map<String, Object> bindVars) {

src/main/java/com/arangodb/springframework/repository/query/derived/DerivedQueryCreator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.arangodb.springframework.core.mapping.ArangoPersistentProperty;
2828
import com.arangodb.springframework.core.util.AqlUtils;
2929
import com.arangodb.springframework.repository.query.ArangoParameterAccessor;
30+
import com.arangodb.springframework.repository.query.QueryWithCollections;
3031
import com.arangodb.springframework.repository.query.derived.geo.Ring;
3132
import org.slf4j.Logger;
3233
import org.slf4j.LoggerFactory;
@@ -42,7 +43,6 @@
4243
import org.springframework.data.repository.query.parser.AbstractQueryCreator;
4344
import org.springframework.data.repository.query.parser.Part;
4445
import org.springframework.data.repository.query.parser.PartTree;
45-
import org.springframework.data.util.Pair;
4646
import org.springframework.util.Assert;
4747

4848
import java.util.*;
@@ -51,7 +51,7 @@
5151
/**
5252
* Creates a full AQL query from a PartTree and ArangoParameterAccessor
5353
*/
54-
public class DerivedQueryCreator extends AbstractQueryCreator<Pair<String, ? extends Collection<String>>, Criteria> {
54+
public class DerivedQueryCreator extends AbstractQueryCreator<QueryWithCollections, Criteria> {
5555

5656
private static final Logger LOGGER = LoggerFactory.getLogger(DerivedQueryCreator.class);
5757
private static final Set<Part.Type> UNSUPPORTED_IGNORE_CASE = new HashSet<>();
@@ -121,7 +121,7 @@ protected Criteria or(final Criteria base, final Criteria criteria) {
121121
* @return
122122
*/
123123
@Override
124-
protected Pair<String, ? extends Collection<String>> complete(final Criteria criteria, final Sort sort) {
124+
protected QueryWithCollections complete(final Criteria criteria, final Sort sort) {
125125
if (tree.isDistinct() && !tree.isCountProjection()) {
126126
LOGGER.debug("Use of 'Distinct' is meaningful only in count queries");
127127
}
@@ -192,7 +192,7 @@ protected Criteria or(final Criteria base, final Criteria criteria) {
192192
}
193193
}
194194
}
195-
return Pair.of(query.toString(), withCollections);
195+
return new QueryWithCollections(query.toString(), withCollections);
196196
}
197197

198198
public double[] getUniquePoint() {

0 commit comments

Comments
 (0)