3333import com .arangodb .entity .UserEntity ;
3434import com .arangodb .internal .ArangoDBConstants ;
3535import com .arangodb .internal .CollectionCache ;
36+ import com .arangodb .internal .CollectionCache .DBAccess ;
3637import com .arangodb .internal .DocumentCache ;
3738import com .arangodb .internal .velocypack .VPackConfigure ;
3839import com .arangodb .internal .velocystream .Communication ;
4849import com .arangodb .velocypack .VPackParser ;
4950import com .arangodb .velocypack .VPackSerializer ;
5051import com .arangodb .velocypack .VPackSlice ;
52+ import com .arangodb .velocypack .exception .VPackException ;
5153import com .arangodb .velocystream .Request ;
5254import com .arangodb .velocystream .RequestType ;
5355import com .arangodb .velocystream .Response ;
@@ -191,8 +193,11 @@ public ArangoDB(final Communication.Builder commBuilder, final VPack vpack, fina
191193 super (commBuilder .build (vpack , collectionCache ), vpack , vpackNull , vpackParser , new DocumentCache (),
192194 collectionCache );
193195 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+ }
196201 });
197202 }
198203
@@ -243,7 +248,12 @@ private Request createDatabaseRequest(final String name) {
243248 }
244249
245250 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+ };
247257 }
248258
249259 /**
@@ -270,10 +280,13 @@ private Request getDatabasesRequest() {
270280 }
271281
272282 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+ }
277290 };
278291 }
279292
@@ -495,10 +508,13 @@ private Request getUsersRequest() {
495508 }
496509
497510 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+ }
502518 };
503519 }
504520
@@ -581,7 +597,12 @@ private Request replaceUserRequest(final String user, final UserUpdateOptions op
581597 }
582598
583599 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+ });
585606 }
586607
587608 public CompletableFuture <Response > executeAsync (final Request request ) {
0 commit comments