33
33
import com .arangodb .entity .UserEntity ;
34
34
import com .arangodb .internal .ArangoDBConstants ;
35
35
import com .arangodb .internal .CollectionCache ;
36
+ import com .arangodb .internal .CollectionCache .DBAccess ;
36
37
import com .arangodb .internal .DocumentCache ;
37
38
import com .arangodb .internal .velocypack .VPackConfigure ;
38
39
import com .arangodb .internal .velocystream .Communication ;
48
49
import com .arangodb .velocypack .VPackParser ;
49
50
import com .arangodb .velocypack .VPackSerializer ;
50
51
import com .arangodb .velocypack .VPackSlice ;
52
+ import com .arangodb .velocypack .exception .VPackException ;
51
53
import com .arangodb .velocystream .Request ;
52
54
import com .arangodb .velocystream .RequestType ;
53
55
import com .arangodb .velocystream .Response ;
@@ -191,8 +193,11 @@ public ArangoDB(final Communication.Builder commBuilder, final VPack vpack, fina
191
193
super (commBuilder .build (vpack , collectionCache ), vpack , vpackNull , vpackParser , new DocumentCache (),
192
194
collectionCache );
193
195
final Communication cacheCom = commBuilder .build (vpack , collectionCache );
194
- collectionCache .init (name -> {
195
- return new ArangoDatabase (cacheCom , vpackNull , vpack , vpackParser , documentCache , null , name );
196
+ collectionCache .init (new DBAccess () {
197
+ @ Override
198
+ public ArangoDatabase db (final String name ) {
199
+ return new ArangoDatabase (cacheCom , vpackNull , vpack , vpackParser , documentCache , null , name );
200
+ }
196
201
});
197
202
}
198
203
@@ -243,7 +248,12 @@ private Request createDatabaseRequest(final String name) {
243
248
}
244
249
245
250
private ResponseDeserializer <Boolean > createDatabaseResponseDeserializer () {
246
- return response -> response .getBody ().get ().get (ArangoDBConstants .RESULT ).getAsBoolean ();
251
+ return new ResponseDeserializer <Boolean >() {
252
+ @ Override
253
+ public Boolean deserialize (final Response response ) throws VPackException {
254
+ return response .getBody ().get (ArangoDBConstants .RESULT ).getAsBoolean ();
255
+ }
256
+ };
247
257
}
248
258
249
259
/**
@@ -270,10 +280,13 @@ private Request getDatabasesRequest() {
270
280
}
271
281
272
282
private ResponseDeserializer <Collection <String >> getDatabaseResponseDeserializer () {
273
- return response -> {
274
- final VPackSlice result = response .getBody ().get ().get (ArangoDBConstants .RESULT );
275
- return deserialize (result , new Type <Collection <String >>() {
276
- }.getType ());
283
+ return new ResponseDeserializer <Collection <String >>() {
284
+ @ Override
285
+ public Collection <String > deserialize (final Response response ) throws VPackException {
286
+ final VPackSlice result = response .getBody ().get (ArangoDBConstants .RESULT );
287
+ return ArangoDB .this .deserialize (result , new Type <Collection <String >>() {
288
+ }.getType ());
289
+ }
277
290
};
278
291
}
279
292
@@ -495,10 +508,13 @@ private Request getUsersRequest() {
495
508
}
496
509
497
510
private ResponseDeserializer <Collection <UserEntity >> getUsersResponseDeserializer () {
498
- return (response ) -> {
499
- final VPackSlice result = response .getBody ().get ().get (ArangoDBConstants .RESULT );
500
- return deserialize (result , new Type <Collection <UserEntity >>() {
501
- }.getType ());
511
+ return new ResponseDeserializer <Collection <UserEntity >>() {
512
+ @ Override
513
+ public Collection <UserEntity > deserialize (final Response response ) throws VPackException {
514
+ final VPackSlice result = response .getBody ().get (ArangoDBConstants .RESULT );
515
+ return ArangoDB .this .deserialize (result , new Type <Collection <UserEntity >>() {
516
+ }.getType ());
517
+ }
502
518
};
503
519
}
504
520
@@ -581,7 +597,12 @@ private Request replaceUserRequest(final String user, final UserUpdateOptions op
581
597
}
582
598
583
599
public Response execute (final Request request ) {
584
- return executeSync (request , response -> response );
600
+ return executeSync (request , new ResponseDeserializer <Response >() {
601
+ @ Override
602
+ public Response deserialize (final Response response ) throws VPackException {
603
+ return response ;
604
+ }
605
+ });
585
606
}
586
607
587
608
public CompletableFuture <Response > executeAsync (final Request request ) {
0 commit comments