Skip to content

Commit 3834c4a

Browse files
authored
[DE-991] Wildcard generic aql bind vars (#612)
* wildcard generic type in AQL bindVars * v7.22.0-SNAPSHOT
1 parent 678dbf0 commit 3834c4a

File tree

31 files changed

+58
-63
lines changed

31 files changed

+58
-63
lines changed

core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<relativePath>../release-parent</relativePath>
99
<groupId>com.arangodb</groupId>
1010
<artifactId>release-parent</artifactId>
11-
<version>7.21.0</version>
11+
<version>7.22.0-SNAPSHOT</version>
1212
</parent>
1313

1414
<name>core</name>

core/src/main/java/com/arangodb/ArangoDatabase.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public interface ArangoDatabase extends ArangoSerdeAccessor {
254254
* @see <a href="https://docs.arangodb.com/stable/develop/http-api/queries/aql-queries/#create-a-cursor">API
255255
* Documentation</a>
256256
*/
257-
<T> ArangoCursor<T> query(String query, Class<T> type, Map<String, Object> bindVars, AqlQueryOptions options);
257+
<T> ArangoCursor<T> query(String query, Class<T> type, Map<String, ?> bindVars, AqlQueryOptions options);
258258

259259
/**
260260
* Performs a database query using the given {@code query}, then returns a new {@code ArangoCursor} instance for the
@@ -280,7 +280,7 @@ public interface ArangoDatabase extends ArangoSerdeAccessor {
280280
* @see <a href="https://docs.arangodb.com/stable/develop/http-api/queries/aql-queries/#create-a-cursor">API
281281
* Documentation</a>
282282
*/
283-
<T> ArangoCursor<T> query(String query, Class<T> type, Map<String, Object> bindVars);
283+
<T> ArangoCursor<T> query(String query, Class<T> type, Map<String, ?> bindVars);
284284

285285
/**
286286
* Performs a database query using the given {@code query}, then returns a new {@code ArangoCursor} instance for the
@@ -355,11 +355,10 @@ public interface ArangoDatabase extends ArangoSerdeAccessor {
355355
* @return information about the query
356356
* @see <a href="https://docs.arangodb.com/stable/develop/http-api/queries/aql-queries/#explain-an-aql-query">API
357357
* Documentation</a>
358-
*
359358
* @deprecated for removal, use {@link ArangoDatabase#explainAqlQuery(String, Map, AqlQueryExplainOptions)} instead
360359
*/
361360
@Deprecated
362-
AqlExecutionExplainEntity explainQuery(String query, Map<String, Object> bindVars, AqlQueryExplainOptions options);
361+
AqlExecutionExplainEntity explainQuery(String query, Map<String, ?> bindVars, AqlQueryExplainOptions options);
363362

364363
/**
365364
* Explain an AQL query and return information about it
@@ -370,11 +369,10 @@ public interface ArangoDatabase extends ArangoSerdeAccessor {
370369
* @return information about the query
371370
* @see <a href="https://docs.arangodb.com/stable/develop/http-api/queries/aql-queries/#explain-an-aql-query">API
372371
* Documentation</a>
373-
*
374372
* @deprecated for removal, use {@link ArangoDatabase#explainAqlQuery(String, Map, ExplainAqlQueryOptions)} instead
375373
*/
376374
@Deprecated
377-
AqlQueryExplainEntity explainAqlQuery(String query, Map<String, Object> bindVars, AqlQueryExplainOptions options);
375+
AqlQueryExplainEntity explainAqlQuery(String query, Map<String, ?> bindVars, AqlQueryExplainOptions options);
378376

379377

380378
/**
@@ -387,7 +385,7 @@ public interface ArangoDatabase extends ArangoSerdeAccessor {
387385
* @see <a href="https://docs.arangodb.com/stable/develop/http-api/queries/aql-queries/#explain-an-aql-query">API
388386
* Documentation</a>
389387
*/
390-
AqlQueryExplainEntity explainAqlQuery(String query, Map<String, Object> bindVars, ExplainAqlQueryOptions options);
388+
AqlQueryExplainEntity explainAqlQuery(String query, Map<String, ?> bindVars, ExplainAqlQueryOptions options);
391389

392390
/**
393391
* Parse an AQL query and return information about it This method is for query validation only. To actually query

core/src/main/java/com/arangodb/ArangoDatabaseAsync.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,11 @@ public interface ArangoDatabaseAsync extends ArangoSerdeAccessor {
146146
*/
147147
CompletableFuture<Permissions> getPermissions(String user);
148148

149-
<T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, Map<String, Object> bindVars, AqlQueryOptions options);
149+
<T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, Map<String, ?> bindVars, AqlQueryOptions options);
150150

151151
<T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, AqlQueryOptions options);
152152

153-
<T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, Map<String, Object> bindVars);
153+
<T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, Map<String, ?> bindVars);
154154

155155
<T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type);
156156

@@ -168,20 +168,20 @@ public interface ArangoDatabaseAsync extends ArangoSerdeAccessor {
168168
* @deprecated for removal, use {@link ArangoDatabaseAsync#explainAqlQuery(String, Map, AqlQueryExplainOptions)} instead
169169
*/
170170
@Deprecated
171-
CompletableFuture<AqlExecutionExplainEntity> explainQuery(String query, Map<String, Object> bindVars, AqlQueryExplainOptions options);
171+
CompletableFuture<AqlExecutionExplainEntity> explainQuery(String query, Map<String, ?> bindVars, AqlQueryExplainOptions options);
172172

173173
/**
174174
* Asynchronous version of {@link ArangoDatabase#explainAqlQuery(String, Map, AqlQueryExplainOptions)}
175175
*
176176
* @deprecated for removal, use {@link ArangoDatabaseAsync#explainAqlQuery(String, Map, ExplainAqlQueryOptions)} instead
177177
*/
178178
@Deprecated
179-
CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(String query, Map<String, Object> bindVars, AqlQueryExplainOptions options);
179+
CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(String query, Map<String, ?> bindVars, AqlQueryExplainOptions options);
180180

181181
/**
182182
* Asynchronous version of {@link ArangoDatabase#explainAqlQuery(String, Map, ExplainAqlQueryOptions)}
183183
*/
184-
CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(String query, Map<String, Object> bindVars, ExplainAqlQueryOptions options);
184+
CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(String query, Map<String, ?> bindVars, ExplainAqlQueryOptions options);
185185

186186
/**
187187
* Asynchronous version of {@link ArangoDatabase#parseQuery(String)}

core/src/main/java/com/arangodb/internal/ArangoDatabaseAsyncImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public CompletableFuture<Permissions> getPermissions(final String user) {
169169

170170
@Override
171171
public <T> CompletableFuture<ArangoCursorAsync<T>> query(
172-
final String query, final Class<T> type, final Map<String, Object> bindVars, final AqlQueryOptions options) {
172+
final String query, final Class<T> type, final Map<String, ?> bindVars, final AqlQueryOptions options) {
173173
final InternalRequest request = queryRequest(query, bindVars, options);
174174
final HostHandle hostHandle = new HostHandle();
175175
return executorAsync().execute(() -> request, cursorEntityDeserializer(type), hostHandle)
@@ -182,7 +182,7 @@ public <T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T>
182182
}
183183

184184
@Override
185-
public <T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, Map<String, Object> bindVars) {
185+
public <T> CompletableFuture<ArangoCursorAsync<T>> query(String query, Class<T> type, Map<String, ?> bindVars) {
186186
return query(query, type, bindVars, new AqlQueryOptions());
187187
}
188188

@@ -219,18 +219,18 @@ public <T> CompletableFuture<ArangoCursorAsync<T>> cursor(String cursorId, Class
219219

220220
@Override
221221
public CompletableFuture<AqlExecutionExplainEntity> explainQuery(
222-
final String query, final Map<String, Object> bindVars, final AqlQueryExplainOptions options) {
222+
final String query, final Map<String, ?> bindVars, final AqlQueryExplainOptions options) {
223223
return executorAsync().execute(() -> explainQueryRequest(query, bindVars, options), AqlExecutionExplainEntity.class);
224224
}
225225

226226
@Override
227227
public CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(
228-
String query, Map<String, Object> bindVars, AqlQueryExplainOptions options) {
228+
String query, Map<String, ?> bindVars, AqlQueryExplainOptions options) {
229229
return executorAsync().execute(() -> explainQueryRequest(query, bindVars, options), AqlQueryExplainEntity.class);
230230
}
231231

232232
@Override
233-
public CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(String query, Map<String, Object> bindVars, ExplainAqlQueryOptions options) {
233+
public CompletableFuture<AqlQueryExplainEntity> explainAqlQuery(String query, Map<String, ?> bindVars, ExplainAqlQueryOptions options) {
234234
return executorAsync().execute(() -> explainQueryRequest(query, bindVars, options), AqlQueryExplainEntity.class);
235235
}
236236

core/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,15 +162,15 @@ public Permissions getPermissions(final String user) {
162162

163163
@Override
164164
public <T> ArangoCursor<T> query(
165-
final String query, final Class<T> type, final Map<String, Object> bindVars, final AqlQueryOptions options) {
165+
final String query, final Class<T> type, final Map<String, ?> bindVars, final AqlQueryOptions options) {
166166
final InternalRequest request = queryRequest(query, bindVars, options);
167167
final HostHandle hostHandle = new HostHandle();
168168
final CursorEntity<T> result = executorSync().execute(request, cursorEntityDeserializer(type), hostHandle);
169169
return createCursor(result, type, options, hostHandle);
170170
}
171171

172172
@Override
173-
public <T> ArangoCursor<T> query(final String query, final Class<T> type, final Map<String, Object> bindVars) {
173+
public <T> ArangoCursor<T> query(final String query, final Class<T> type, final Map<String, ?> bindVars) {
174174
return query(query, type, bindVars, new AqlQueryOptions());
175175
}
176176

@@ -240,17 +240,17 @@ public void close(final String id) {
240240

241241
@Override
242242
public AqlExecutionExplainEntity explainQuery(
243-
final String query, final Map<String, Object> bindVars, final AqlQueryExplainOptions options) {
243+
final String query, final Map<String, ?> bindVars, final AqlQueryExplainOptions options) {
244244
return executorSync().execute(explainQueryRequest(query, bindVars, options), AqlExecutionExplainEntity.class);
245245
}
246246

247247
@Override
248-
public AqlQueryExplainEntity explainAqlQuery(String query, Map<String, Object> bindVars, AqlQueryExplainOptions options) {
248+
public AqlQueryExplainEntity explainAqlQuery(String query, Map<String, ?> bindVars, AqlQueryExplainOptions options) {
249249
return executorSync().execute(explainQueryRequest(query, bindVars, options), AqlQueryExplainEntity.class);
250250
}
251251

252252
@Override
253-
public AqlQueryExplainEntity explainAqlQuery(String query, Map<String, Object> bindVars, ExplainAqlQueryOptions options) {
253+
public AqlQueryExplainEntity explainAqlQuery(String query, Map<String, ?> bindVars, ExplainAqlQueryOptions options) {
254254
return executorSync().execute(explainQueryRequest(query, bindVars, options), AqlQueryExplainEntity.class);
255255
}
256256

core/src/main/java/com/arangodb/internal/InternalArangoDatabase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ protected ResponseDeserializer<Permissions> getPermissionsResponseDeserialzer()
140140
Permissions.class);
141141
}
142142

143-
protected InternalRequest queryRequest(final String query, final Map<String, Object> bindVars,
143+
protected InternalRequest queryRequest(final String query, final Map<String, ?> bindVars,
144144
final AqlQueryOptions options) {
145145
final AqlQueryOptions opt = options != null ? options : new AqlQueryOptions();
146146
final InternalRequest request = request(name, RequestType.POST, PATH_API_CURSOR)
@@ -172,14 +172,14 @@ protected InternalRequest queryCloseRequest(final String id, final AqlQueryOptio
172172
return request;
173173
}
174174

175-
protected InternalRequest explainQueryRequest(final String query, final Map<String, Object> bindVars,
175+
protected InternalRequest explainQueryRequest(final String query, final Map<String, ?> bindVars,
176176
final AqlQueryExplainOptions options) {
177177
final AqlQueryExplainOptions opt = options != null ? options : new AqlQueryExplainOptions();
178178
return request(name, RequestType.POST, PATH_API_EXPLAIN)
179179
.setBody(getSerde().serialize(OptionsBuilder.build(opt, query, bindVars)));
180180
}
181181

182-
protected InternalRequest explainQueryRequest(final String query, final Map<String, Object> bindVars,
182+
protected InternalRequest explainQueryRequest(final String query, final Map<String, ?> bindVars,
183183
final ExplainAqlQueryOptions options) {
184184
final ExplainAqlQueryOptions opt = options != null ? options : new ExplainAqlQueryOptions();
185185
return request(name, RequestType.POST, PATH_API_EXPLAIN)

core/src/main/java/com/arangodb/model/AqlQueryExplainOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
@Deprecated
3636
public final class AqlQueryExplainOptions {
3737

38-
private Map<String, Object> bindVars;
38+
private Map<String, ?> bindVars;
3939
private String query;
4040
private Options options;
4141

@@ -44,15 +44,15 @@ public AqlQueryExplainOptions() {
4444
}
4545

4646
@UserDataInside
47-
public Map<String, Object> getBindVars() {
47+
public Map<String, ?> getBindVars() {
4848
return bindVars;
4949
}
5050

5151
/**
5252
* @param bindVars key/value pairs representing the bind parameters
5353
* @return options
5454
*/
55-
AqlQueryExplainOptions bindVars(final Map<String, Object> bindVars) {
55+
AqlQueryExplainOptions bindVars(final Map<String, ?> bindVars) {
5656
this.bindVars = bindVars;
5757
return this;
5858
}

core/src/main/java/com/arangodb/model/AqlQueryOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public final class AqlQueryOptions extends TransactionalOptions<AqlQueryOptions>
3636

3737
private Boolean allowDirtyRead;
3838
private Integer batchSize;
39-
private Map<String, Object> bindVars;
39+
private Map<String, ?> bindVars;
4040
private Boolean cache;
4141
private Boolean count;
4242
private Long memoryLimit;
@@ -87,7 +87,7 @@ public AqlQueryOptions batchSize(final Integer batchSize) {
8787
}
8888

8989
@UserDataInside
90-
public Map<String, Object> getBindVars() {
90+
public Map<String, ?> getBindVars() {
9191
return bindVars;
9292
}
9393

@@ -97,7 +97,7 @@ public Map<String, Object> getBindVars() {
9797
* variable {@code @@coll}, use {@code @coll} as the attribute name.
9898
* @return this
9999
*/
100-
AqlQueryOptions bindVars(final Map<String, Object> bindVars) {
100+
AqlQueryOptions bindVars(final Map<String, ?> bindVars) {
101101
this.bindVars = bindVars;
102102
return this;
103103
}

core/src/main/java/com/arangodb/model/ExplainAqlQueryOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
*/
3333
public final class ExplainAqlQueryOptions {
3434

35-
private Map<String, Object> bindVars;
35+
private Map<String, ?> bindVars;
3636
private String query;
3737
private AqlQueryOptions.Options options;
3838

@@ -41,15 +41,15 @@ public ExplainAqlQueryOptions() {
4141
}
4242

4343
@UserDataInside
44-
public Map<String, Object> getBindVars() {
44+
public Map<String, ?> getBindVars() {
4545
return bindVars;
4646
}
4747

4848
/**
4949
* @param bindVars key/value pairs representing the bind parameters
5050
* @return options
5151
*/
52-
ExplainAqlQueryOptions bindVars(final Map<String, Object> bindVars) {
52+
ExplainAqlQueryOptions bindVars(final Map<String, ?> bindVars) {
5353
this.bindVars = bindVars;
5454
return this;
5555
}

core/src/main/java/com/arangodb/model/OptionsBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,21 +71,21 @@ public static CollectionCreateOptions build(final CollectionCreateOptions option
7171
}
7272

7373
public static AqlQueryOptions build(final AqlQueryOptions options, final String query,
74-
final Map<String, Object> bindVars) {
74+
final Map<String, ?> bindVars) {
7575
return options.query(query).bindVars(bindVars);
7676
}
7777

7878
public static AqlQueryExplainOptions build(
7979
final AqlQueryExplainOptions options,
8080
final String query,
81-
final Map<String, Object> bindVars) {
81+
final Map<String, ?> bindVars) {
8282
return options.query(query).bindVars(bindVars);
8383
}
8484

8585
public static ExplainAqlQueryOptions build(
8686
final ExplainAqlQueryOptions options,
8787
final String query,
88-
final Map<String, Object> bindVars) {
88+
final Map<String, ?> bindVars) {
8989
return options.query(query).bindVars(bindVars);
9090
}
9191

0 commit comments

Comments
 (0)