streamRemaining();
-
-}
diff --git a/core/src/main/java/com/arangodb/async/ArangoDBAsync.java b/core/src/main/java/com/arangodb/async/ArangoDBAsync.java
deleted file mode 100644
index 7d9ce542d..000000000
--- a/core/src/main/java/com/arangodb/async/ArangoDBAsync.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * DISCLAIMER
- *
- * Copyright 2016 ArangoDB GmbH, Cologne, Germany
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright holder is ArangoDB GmbH, Cologne, Germany
- */
-
-package com.arangodb.async;
-
-import com.arangodb.*;
-import com.arangodb.async.internal.ArangoDBAsyncImpl;
-import com.arangodb.entity.*;
-import com.arangodb.internal.InternalArangoDBBuilder;
-import com.arangodb.internal.net.*;
-import com.arangodb.model.DBCreateOptions;
-import com.arangodb.model.LogOptions;
-import com.arangodb.model.UserCreateOptions;
-import com.arangodb.model.UserUpdateOptions;
-
-import javax.annotation.concurrent.ThreadSafe;
-import java.util.Collection;
-import java.util.ServiceLoader;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Central access point for applications to communicate with an ArangoDB server.
- *
- *
- * Will be instantiated through {@link ArangoDBAsync.Builder}
- *
- *
- *
- * ArangoDBAsync arango = new ArangoDBAsync.Builder().build();
- * ArangoDBAsync arango = new ArangoDBAsync.Builder().host("127.0.0.1", 8529).build();
- *
- *
- * @author Mark Vollmary
- */
-@ThreadSafe
-public interface ArangoDBAsync extends ArangoSerdeAccessor {
-
- void shutdown();
-
- /**
- * Updates the JWT used for requests authorization. It does not change already existing VST connections, since VST
- * connections are authenticated during the initialization phase.
- *
- * @param jwt token to use
- */
- void updateJwt(String jwt);
-
- /**
- * Returns a handler of the system database
- *
- * @return database handler
- */
- ArangoDatabaseAsync db();
-
- /**
- * Returns a handler of the database by the given name
- *
- * @param dbName Name of the database
- * @return database handler
- */
- ArangoDatabaseAsync db(final DbName dbName);
-
- /**
- * @return entry point for accessing client metrics
- */
- ArangoMetrics metrics();
-
- /**
- * Creates a new database
- *
- * @param dbName database name
- * @return true if the database was created successfully.
- * @see API
- * Documentation
- */
- CompletableFuture createDatabase(final DbName dbName);
-
- /**
- * Creates a new database
- *
- * @param options Creation options
- * @return true if the database was created successfully.
- * @see API
- * Documentation
- * @since ArangoDB 3.6.0
- */
- CompletableFuture createDatabase(final DBCreateOptions options);
-
- /**
- * Retrieves a list of all existing databases
- *
- * @return a list of all existing databases
- * @see API
- * Documentation
- */
- CompletableFuture> getDatabases();
-
- /**
- * Retrieves a list of all databases the current user can access
- *
- * @return a list of all databases the current user can access
- * @see API
- * Documentation
- */
- CompletableFuture> getAccessibleDatabases();
-
- /**
- * List available database to the specified user
- *
- * @param user The name of the user for which you want to query the databases
- * @return
- * @see API
- * Documentation
- */
- CompletableFuture> getAccessibleDatabasesFor(final String user);
-
- /**
- * Returns the server name and version number.
- *
- * @return the server version, number
- * @see API
- * Documentation
- */
- CompletableFuture getVersion();
-
- /**
- * Returns the server role.
- *
- * @return the server role
- */
- CompletableFuture getRole();
-
- /**
- * Create a new user. This user will not have access to any database. You need permission to the _system database in
- * order to execute this call.
- *
- * @param user The name of the user
- * @param passwd The user password
- * @return information about the user
- * @see API Documentation
- */
- CompletableFuture createUser(final String user, final String passwd);
-
- /**
- * Create a new user. This user will not have access to any database. You need permission to the _system database in
- * order to execute this call.
- *
- * @param user The name of the user
- * @param passwd The user password
- * @param options Additional properties of the user, can be null
- * @return information about the user
- * @see API Documentation
- */
- CompletableFuture createUser(final String user, final String passwd, final UserCreateOptions options);
-
- /**
- * Removes an existing user, identified by user. You need access to the _system database.
- *
- * @param user The name of the user
- * @return void
- * @see API Documentation
- */
- CompletableFuture deleteUser(final String user);
-
- /**
- * Fetches data about the specified user. You can fetch information about yourself or you need permission to the
- * _system database in order to execute this call.
- *
- * @param user The name of the user
- * @return information about the user
- * @see API Documentation
- */
- CompletableFuture getUser(final String user);
-
- /**
- * Fetches data about all users. You can only execute this call if you have access to the _system database.
- *
- * @return informations about all users
- * @see API
- * Documentation
- */
- CompletableFuture> getUsers();
-
- /**
- * Partially updates the data of an existing user. The name of an existing user must be specified in user. You can
- * only change the password of your self. You need access to the _system database to change the active flag.
- *
- * @param user The name of the user
- * @param options Properties of the user to be changed
- * @return information about the user
- * @see API Documentation
- */
- CompletableFuture updateUser(final String user, final UserUpdateOptions options);
-
- /**
- * Replaces the data of an existing user. The name of an existing user must be specified in user. You can only
- * change the password of your self. You need access to the _system database to change the active flag.
- *
- * @param user The name of the user
- * @param options Additional properties of the user, can be null
- * @return information about the user
- * @see API
- * Documentation
- */
- CompletableFuture replaceUser(final String user, final UserUpdateOptions options);
-
- /**
- * Sets the default access level for databases for the user user
. You need permission to the _system
- * database in order to execute this call.
- *
- * @param user The name of the user
- * @param permissions The permissions the user grant
- * @return void
- * @since ArangoDB 3.2.0
- */
- CompletableFuture grantDefaultDatabaseAccess(final String user, final Permissions permissions);
-
- /**
- * Sets the default access level for collections for the user user
. You need permission to the _system
- * database in order to execute this call.
- *
- * @param user The name of the user
- * @param permissions The permissions the user grant
- * @return void
- * @since ArangoDB 3.2.0
- */
- CompletableFuture grantDefaultCollectionAccess(final String user, final Permissions permissions);
-
- /**
- * Execute custom requests. Requests can be programmatically built by setting low level detail such as method, path,
- * query parameters, headers and body payload.
- * This method can be used to call FOXX services, API endpoints not (yet) implemented in this driver or trigger
- * async jobs, see
- * Fire and Forget
- * and
- * Async Execution and later Result Retrieval
- *
- * @param request request
- * @param type Deserialization target type for the response body (POJO or {@link com.arangodb.util.RawData})
- * @return response
- */
- CompletableFuture> execute(final Request request, final Class type);
-
- /**
- * Returns the server logs
- *
- * @param options Additional options, can be null
- * @return the log messages
- * @see API
- * Documentation
- * @since ArangoDB 3.8
- */
- CompletableFuture getLogEntries(final LogOptions options);
-
- /**
- * Returns the server's current loglevel settings.
- *
- * @return the server's current loglevel settings
- */
- CompletableFuture getLogLevel();
-
- /**
- * Modifies and returns the server's current loglevel settings.
- *
- * @param entity loglevel settings
- * @return the server's current loglevel settings
- */
- CompletableFuture setLogLevel(final LogLevelEntity entity);
-
- /**
- * @return the list of available rules and their respective flags
- * @since ArangoDB 3.10
- */
- CompletableFuture> getQueryOptimizerRules();
-
- /**
- * Builder class to build an instance of {@link ArangoDBAsync}.
- *
- * @author Mark Vollmary
- */
- class Builder extends InternalArangoDBBuilder {
-
- private AsyncProtocolProvider asyncProtocolProvider(Protocol protocol) {
- ServiceLoader loader = ServiceLoader.load(AsyncProtocolProvider.class);
- for (AsyncProtocolProvider p : loader) {
- if (p.supportsProtocol(protocol)) {
- return p;
- }
- LOG.debug("Required protocol ({}) not supported by ProtocolProvider: {}", protocol, p.getClass().getName());
- }
- throw new ArangoDBException("No ProtocolProvider found for protocol: " + protocol);
- }
-
- /**
- * Returns an instance of {@link ArangoDBAsync}.
- *
- * @return {@link ArangoDBAsync}
- */
- public ArangoDBAsync build() {
- if (config.getHosts().isEmpty()) {
- throw new ArangoDBException("No host has been set!");
- }
-
- AsyncProtocolProvider asyncProtocolProvider = asyncProtocolProvider(Protocol.VST);
- ProtocolProvider protocolProvider = protocolProvider(Protocol.VST);
-
- config.setProtocol(Protocol.VST);
- config.setProtocolModule(asyncProtocolProvider.protocolModule());
-
- final ConnectionFactory asyncConnectionFactory = asyncProtocolProvider.createConnectionFactory();
- final ConnectionFactory syncConnectionFactory = protocolProvider.createConnectionFactory();
- final HostResolver asyncHostResolver = createHostResolver(createHostList(asyncConnectionFactory), asyncConnectionFactory);
- final HostResolver syncHostResolver = createHostResolver(createHostList(syncConnectionFactory), syncConnectionFactory);
- final HostHandler asyncHostHandler = createHostHandler(asyncHostResolver);
- final HostHandler syncHostHandler = createHostHandler(syncHostResolver);
- return new ArangoDBAsyncImpl(
- config,
- asyncHostResolver,
- syncHostResolver,
- asyncProtocolProvider,
- protocolProvider,
- asyncHostHandler,
- syncHostHandler
- );
- }
- }
-}
diff --git a/core/src/main/java/com/arangodb/async/ArangoDatabaseAsync.java b/core/src/main/java/com/arangodb/async/ArangoDatabaseAsync.java
deleted file mode 100644
index bbd46f8b6..000000000
--- a/core/src/main/java/com/arangodb/async/ArangoDatabaseAsync.java
+++ /dev/null
@@ -1,773 +0,0 @@
-/*
- * DISCLAIMER
- *
- * Copyright 2016 ArangoDB GmbH, Cologne, Germany
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright holder is ArangoDB GmbH, Cologne, Germany
- */
-
-package com.arangodb.async;
-
-import com.arangodb.ArangoSerdeAccessor;
-import com.arangodb.DbName;
-import com.arangodb.entity.*;
-import com.arangodb.entity.arangosearch.analyzer.SearchAnalyzer;
-import com.arangodb.model.*;
-import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
-import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
-import com.arangodb.model.arangosearch.SearchAliasCreateOptions;
-
-import javax.annotation.concurrent.ThreadSafe;
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Interface for operations on ArangoDB database level.
- *
- * @author Mark Vollmary
- * @see Databases API Documentation
- * @see Query API Documentation
- */
-@ThreadSafe
-public interface ArangoDatabaseAsync extends ArangoSerdeAccessor {
-
- /**
- * Return the main entry point for the ArangoDB driver
- *
- * @return main entry point
- */
- ArangoDBAsync arango();
-
- /**
- * Returns the name of the database
- *
- * @return database name
- */
- DbName dbName();
-
- /**
- * Returns the server name and version number.
- *
- * @return the server version, number
- * @see API
- * Documentation
- */
- CompletableFuture getVersion();
-
- /**
- * Returns the name of the used storage engine.
- *
- * @return the storage engine name
- * @see
- * API
- * Documentation
- */
- CompletableFuture getEngine();
-
- /**
- * Checks whether the database exists
- *
- * @return true if the database exists, otherwise false
- */
- CompletableFuture exists();
-
- /**
- * Retrieves a list of all databases the current user can access
- *
- * @return a list of all databases the current user can access
- * @see API
- * Documentation
- */
- CompletableFuture> getAccessibleDatabases();
-
- /**
- * Returns a handler of the collection by the given name
- *
- * @param name Name of the collection
- * @return collection handler
- */
- ArangoCollectionAsync collection(final String name);
-
- /**
- * Creates a collection
- *
- * @param name The name of the collection
- * @return information about the collection
- * @see API
- * Documentation
- */
- CompletableFuture createCollection(final String name);
-
- /**
- * Creates a collection
- *
- * @param name The name of the collection
- * @param options Additional options, can be null
- * @return information about the collection
- * @see API
- * Documentation
- */
- CompletableFuture createCollection(final String name, final CollectionCreateOptions options);
-
- /**
- * Returns all collections
- *
- * @return list of information about all collections
- * @see API
- * Documentation
- */
- CompletableFuture> getCollections();
-
- /**
- * Returns all collections
- *
- * @param options Additional options, can be null
- * @return list of information about all collections
- * @see API
- * Documentation
- */
- CompletableFuture> getCollections(final CollectionsReadOptions options);
-
- /**
- * Returns an index
- *
- * @param id The index-handle
- * @return information about the index
- * @see
- * API Documentation
- */
- CompletableFuture getIndex(final String id);
-
- /**
- * Deletes an index
- *
- * @param id The index handle
- * @return the id of the index
- * @see
- * API Documentation
- */
- CompletableFuture deleteIndex(final String id);
-
- /**
- * Creates the database
- *
- * @return true if the database was created successfully.
- * @see API
- * Documentation
- */
- CompletableFuture create();
-
- /**
- * Drop an existing database
- *
- * @return true if the database was dropped successfully
- * @see API
- * Documentation
- */
- CompletableFuture drop();
-
- /**
- * Grants access to the database dbname for user user. You need permission to the _system database in order to
- * execute this call.
- *
- * @param user The name of the user
- * @param permissions The permissions the user grant
- * @return void
- * @see
- * API Documentation
- */
- CompletableFuture grantAccess(final String user, final Permissions permissions);
-
- /**
- * Grants access to the database dbname for user user. You need permission to the _system database in order to
- * execute this call.
- *
- * @param user The name of the user
- * @return void
- * @see
- * API Documentation
- */
- CompletableFuture grantAccess(final String user);
-
- /**
- * Revokes access to the database dbname for user user. You need permission to the _system database in order to
- * execute this call.
- *
- * @param user The name of the user
- * @return void
- * @see
- * API Documentation
- */
- CompletableFuture revokeAccess(final String user);
-
- /**
- * Clear the database access level, revert back to the default access level.
- *
- * @param user The name of the user
- * @return void
- * @see
- * API Documentation
- * @since ArangoDB 3.2.0
- */
- CompletableFuture resetAccess(final String user);
-
- /**
- * Sets the default access level for collections within this database for the user user
. You need
- * permission to the _system database in order to execute this call.
- *
- * @param user The name of the user
- * @param permissions The permissions the user grant
- * @since ArangoDB 3.2.0
- */
- CompletableFuture grantDefaultCollectionAccess(final String user, final Permissions permissions);
-
- /**
- * Get specific database access level
- *
- * @param user The name of the user
- * @return permissions of the user
- * @see API
- * Documentation
- * @since ArangoDB 3.2.0
- */
- CompletableFuture getPermissions(final String user);
-
- /**
- * Performs a database query using the given {@code query} and {@code bindVars}, then returns a new
- * {@code ArangoCursor} instance for the result list.
- *
- * @param query contains the query string to be executed
- * @param bindVars key/value pairs representing the bind parameters
- * @param options Additional options, can be null
- * @param type The type of the result (POJO or {@link com.arangodb.util.RawData})
- * @return cursor of the results
- * @see
- * API
- * Documentation
- */
- CompletableFuture> query(
- final String query,
- final Map bindVars,
- final AqlQueryOptions options,
- final Class type);
-
- /**
- * Performs a database query using the given {@code query}, then returns a new {@code ArangoCursor} instance for the
- * result list.
- *
- * @param query contains the query string to be executed
- * @param options Additional options, can be null
- * @param type The type of the result (POJO or {@link com.arangodb.util.RawData})
- * @return cursor of the results
- * @see
- * API
- * Documentation
- */
- CompletableFuture> query(
- final String query,
- final AqlQueryOptions options,
- final Class type);
-
- /**
- * Performs a database query using the given {@code query} and {@code bindVars}, then returns a new
- * {@code ArangoCursor} instance for the result list.
- *
- * @param query contains the query string to be executed
- * @param bindVars key/value pairs representing the bind parameters
- * @param type The type of the result (POJO or {@link com.arangodb.util.RawData})
- * @return cursor of the results
- * @see
- * API
- * Documentation
- */
- CompletableFuture> query(
- final String query,
- final Map bindVars,
- final Class type);
-
- /**
- * Performs a database query using the given {@code query}, then returns a new {@code ArangoCursor} instance for the
- * result list.
- *
- * @param query contains the query string to be executed
- * @param type The type of the result (POJO or {@link com.arangodb.util.RawData})
- * @return cursor of the results
- * @see
- * API
- * Documentation
- */
- CompletableFuture> query(final String query, final Class type);
-
- /**
- * Return an cursor from the given cursor-ID if still existing
- *
- * @param cursorId The ID of the cursor
- * @param type The type of the result (POJO or {@link com.arangodb.util.RawData})
- * @return cursor of the results
- * @see API
- * Documentation
- */
- CompletableFuture> cursor(final String cursorId, final Class type);
-
- /**
- * Explain an AQL query and return information about it
- *
- * @param query the query which you want explained
- * @param bindVars key/value pairs representing the bind parameters
- * @param options Additional options, can be null
- * @return information about the query
- * @see API
- * Documentation
- */
- CompletableFuture explainQuery(
- final String query,
- final Map bindVars,
- final AqlQueryExplainOptions options);
-
- /**
- * Parse an AQL query and return information about it This method is for query validation only. To actually query
- * the database, see {@link ArangoDatabaseAsync#query(String, Map, AqlQueryOptions, Class)}
- *
- * @param query the query which you want parse
- * @return imformation about the query
- * @see API
- * Documentation
- */
- CompletableFuture parseQuery(final String query);
-
- /**
- * Clears the AQL query cache
- *
- * @return void
- * @see API
- * Documentation
- */
- CompletableFuture clearQueryCache();
-
- /**
- * Returns the global configuration for the AQL query cache
- *
- * @return configuration for the AQL query cache
- * @see API
- * Documentation
- */
- CompletableFuture getQueryCacheProperties();
-
- /**
- * Changes the configuration for the AQL query cache. Note: changing the properties may invalidate all results in
- * the cache.
- *
- * @param properties properties to be set
- * @return current set of properties
- * @see API
- * Documentation
- */
- CompletableFuture setQueryCacheProperties(final QueryCachePropertiesEntity properties);
-
- /**
- * Returns the configuration for the AQL query tracking
- *
- * @return configuration for the AQL query tracking
- * @see API
- * Documentation
- */
- CompletableFuture getQueryTrackingProperties();
-
- /**
- * Changes the configuration for the AQL query tracking
- *
- * @param properties properties to be set
- * @return current set of properties
- * @see API
- * Documentation
- */
- CompletableFuture setQueryTrackingProperties(
- final QueryTrackingPropertiesEntity properties);
-
- /**
- * Returns a list of currently running AQL queries
- *
- * @return a list of currently running AQL queries
- * @see API
- * Documentation
- */
- CompletableFuture> getCurrentlyRunningQueries();
-
- /**
- * Returns a list of slow running AQL queries
- *
- * @return a list of slow running AQL queries
- * @see API
- * Documentation
- */
- CompletableFuture> getSlowQueries();
-
- /**
- * Clears the list of slow AQL queries
- *
- * @return void
- * @see API
- * Documentation
- */
- CompletableFuture clearSlowQueries();
-
- /**
- * Kills a running query. The query will be terminated at the next cancelation point.
- *
- * @param id The id of the query
- * @return void
- * @see API
- * Documentation
- */
- CompletableFuture killQuery(final String id);
-
- /**
- * Create a new AQL user function
- *
- * @param name the fully qualified name of the user functions
- * @param code a string representation of the function body
- * @param options Additional options, can be null
- * @return void
- * @see API
- * Documentation
- */
- CompletableFuture createAqlFunction(
- final String name,
- final String code,
- final AqlFunctionCreateOptions options);
-
- /**
- * Remove an existing AQL user function
- *
- * @param name the name of the AQL user function
- * @param options Additional options, can be null
- * @return number of deleted functions (since ArangoDB 3.4.0)
- * @see API
- * Documentation
- */
- CompletableFuture deleteAqlFunction(final String name, final AqlFunctionDeleteOptions options);
-
- /**
- * Gets all reqistered AQL user functions
- *
- * @param options Additional options, can be null
- * @return all reqistered AQL user functions
- * @see API
- * Documentation
- */
- CompletableFuture> getAqlFunctions(final AqlFunctionGetOptions options);
-
- /**
- * Returns a handler of the graph by the given name
- *
- * @param name Name of the graph
- * @return graph handler
- */
- ArangoGraphAsync graph(final String name);
-
- /**
- * Create a new graph in the graph module. The creation of a graph requires the name of the graph and a definition
- * of its edges.
- *
- * @param name Name of the graph
- * @param edgeDefinitions An array of definitions for the edge
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture createGraph(final String name, final Collection edgeDefinitions);
-
- /**
- * Create a new graph in the graph module. The creation of a graph requires the name of the graph and a definition
- * of its edges.
- *
- * @param name Name of the graph
- * @param edgeDefinitions An array of definitions for the edge
- * @param options Additional options, can be null
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture createGraph(
- final String name,
- final Collection edgeDefinitions,
- final GraphCreateOptions options);
-
- /**
- * Lists all graphs known to the graph module
- *
- * @return graphs stored in this database
- * @see API
- * Documentation
- */
- CompletableFuture> getGraphs();
-
- /**
- * Execute a server-side transaction
- *
- * @param action the actual transaction operations to be executed, in the form of stringified JavaScript code
- * @param type The type of the result (POJO or {@link com.arangodb.util.RawData})
- * @param options Additional options, can be null
- * @return the result of the transaction if it succeeded
- * @see API
- * Documentation
- */
- CompletableFuture transaction(final String action, final Class type, final TransactionOptions options);
-
- /**
- * Begins a Stream Transaction.
- *
- * @param options Additional options, can be null
- * @return information about the transaction
- * @see
- * API
- * Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture beginStreamTransaction(StreamTransactionOptions options);
-
- /**
- * Aborts a Stream Transaction.
- *
- * @return information about the transaction
- * @see
- * API
- * Documentation
- */
- CompletableFuture abortStreamTransaction(String id);
-
- /**
- * Gets information about a Stream Transaction.
- *
- * @return information about the transaction
- * @see
- *
- * API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture getStreamTransaction(String id);
-
- /**
- * Gets all the currently running Stream Transactions.
- *
- * @return all the currently running Stream Transactions
- * @see
- *
- * API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture> getStreamTransactions();
-
- /**
- * Commits a Stream Transaction.
- *
- * @return information about the transaction
- * @see
- *
- * API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture commitStreamTransaction(String id);
-
- /**
- * Retrieves information about the current database
- *
- * @return information about the current database
- * @see API
- * Documentation
- */
- CompletableFuture getInfo();
-
- /**
- * Reads a single document
- *
- * @param id The id of the document
- * @param type The type of the document (POJO or {@link com.arangodb.util.RawData})
- * @return the document identified by the id
- * @see API
- * Documentation
- */
- CompletableFuture getDocument(final String id, final Class type);
-
- /**
- * Reads a single document
- *
- * @param id The id of the document
- * @param type The type of the document (POJO or {@link com.arangodb.util.RawData})
- * @param options Additional options, can be null
- * @return the document identified by the id
- * @see API
- * Documentation
- */
- CompletableFuture getDocument(final String id, final Class type, final DocumentReadOptions options);
-
- /**
- * Reload the routing table.
- *
- * @return void
- * @see API
- * Documentation
- */
- CompletableFuture reloadRouting();
-
- /**
- * Returns a new {@link ArangoRouteAsync} instance for the given path (relative to the database) that can be used to
- * perform arbitrary requests.
- *
- * @param path The database-relative URL of the route
- * @return {@link ArangoRouteAsync}
- */
- ArangoRouteAsync route(String... path);
-
- /**
- * Fetches all views from the database and returns an list of view descriptions.
- *
- * @return list of information about all views
- * @see
- * API Documentation
- * @since ArangoDB 3.4.0
- */
- CompletableFuture> getViews();
-
- /**
- * Returns a {@code ArangoViewAsync} instance for the given view name.
- *
- * @param name Name of the view
- * @return view handler
- * @since ArangoDB 3.4.0
- */
- ArangoViewAsync view(String name);
-
- /**
- * Returns a {@link ArangoSearchAsync} instance for the given ArangoSearch view name.
- *
- * @param name Name of the view
- * @return ArangoSearch view handler
- * @since ArangoDB 3.4.0
- */
- ArangoSearchAsync arangoSearch(String name);
-
- /**
- * Returns a {@link SearchAliasAsync} instance for the given view name.
- *
- * @param name Name of the view
- * @return SearchAlias view handler
- * @since ArangoDB 3.10
- */
- SearchAliasAsync searchAlias(String name);
-
- /**
- * Creates a view of the given {@code type}, then returns view information from the server.
- *
- * @param name The name of the view
- * @param type The type of the view
- * @return information about the view
- * @since ArangoDB 3.4.0
- */
- CompletableFuture createView(String name, ViewType type);
-
- /**
- * Creates a ArangoSearch view with the given {@code options}, then returns view information from the server.
- *
- * @param name The name of the view
- * @param options Additional options, can be null
- * @return information about the view
- * @see API
- * Documentation
- * @since ArangoDB 3.4.0
- */
- CompletableFuture createArangoSearch(String name, ArangoSearchCreateOptions options);
-
- /**
- * Creates a SearchAlias view with the given {@code options}, then returns view information from the server.
- *
- * @param name The name of the view
- * @param options Additional options, can be null
- * @return information about the view
- * @see API
- * Documentation
- * @since ArangoDB 3.10
- */
- CompletableFuture createSearchAlias(String name, SearchAliasCreateOptions options);
-
- /**
- * Creates an Analyzer
- *
- * @param analyzer SearchAnalyzer
- * @return the created Analyzer
- * @see API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture createSearchAnalyzer(SearchAnalyzer analyzer);
-
- /**
- * Gets information about an Analyzer
- *
- * @param name of the Analyzer without database prefix
- * @return information about an Analyzer
- * @see API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture getSearchAnalyzer(String name);
-
- /**
- * Retrieves all analyzers definitions.
- *
- * @return collection of all analyzers definitions
- * @see API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture> getSearchAnalyzers();
-
- /**
- * Deletes an Analyzer
- *
- * @param name of the Analyzer without database prefix
- * @see API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture deleteSearchAnalyzer(String name);
-
- /**
- * Deletes an Analyzer
- *
- * @param name of the Analyzer without database prefix
- * @param options AnalyzerDeleteOptions
- * @see API Documentation
- * @since ArangoDB 3.5.0
- */
- CompletableFuture deleteSearchAnalyzer(String name, AnalyzerDeleteOptions options);
-
-}
diff --git a/core/src/main/java/com/arangodb/async/ArangoEdgeCollectionAsync.java b/core/src/main/java/com/arangodb/async/ArangoEdgeCollectionAsync.java
deleted file mode 100644
index 4af39cd32..000000000
--- a/core/src/main/java/com/arangodb/async/ArangoEdgeCollectionAsync.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * DISCLAIMER
- *
- * Copyright 2016 ArangoDB GmbH, Cologne, Germany
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright holder is ArangoDB GmbH, Cologne, Germany
- */
-
-package com.arangodb.async;
-
-import com.arangodb.ArangoSerdeAccessor;
-import com.arangodb.entity.EdgeEntity;
-import com.arangodb.entity.EdgeUpdateEntity;
-import com.arangodb.model.*;
-
-import javax.annotation.concurrent.ThreadSafe;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Interface for operations on ArangoDB edge collection level.
- *
- * @author Mark Vollmary
- * @see API Documentation
- */
-@ThreadSafe
-public interface ArangoEdgeCollectionAsync extends ArangoSerdeAccessor {
-
- /**
- * The the handler of the named graph the edge collection is within
- *
- * @return graph handler
- */
- ArangoGraphAsync graph();
-
- /**
- * The name of the edge collection
- *
- * @return collection name
- */
- String name();
-
- /**
- * Remove one edge definition from the graph.
- *
- * @see API
- * Documentation
- */
- CompletableFuture drop();
-
- /**
- * Remove one edge definition from the graph.
- *
- * @param options options
- * @see API
- * Documentation
- */
- CompletableFuture drop(EdgeCollectionDropOptions options);
-
- /**
- * Creates a new edge in the collection
- *
- * @param value A representation of a single edge (POJO or {@link com.arangodb.util.RawData}
- * @return information about the edge
- * @see API Documentation
- */
- CompletableFuture insertEdge(final Object value);
-
- /**
- * Creates a new edge in the collection
- *
- * @param value A representation of a single edge (POJO or {@link com.arangodb.util.RawData}
- * @param options Additional options, can be null
- * @return information about the edge
- * @see API Documentation
- */
- CompletableFuture insertEdge(final Object value, final EdgeCreateOptions options);
-
- /**
- * Fetches an existing edge
- *
- * @param key The key of the edge
- * @param type The type of the edge-document (POJO or {@link com.arangodb.util.RawData}
- * @return the edge identified by the key
- * @see API Documentation
- */
- CompletableFuture getEdge(final String key, final Class type);
-
- /**
- * Fetches an existing edge
- *
- * @param key The key of the edge
- * @param type The type of the edge-document (POJO or {@link com.arangodb.util.RawData}
- * @param options Additional options, can be null
- * @return the edge identified by the key
- * @see API Documentation
- */
- CompletableFuture getEdge(final String key, final Class type, final GraphDocumentReadOptions options);
-
- /**
- * Replaces the edge with key with the one in the body, provided there is such a edge and no precondition is
- * violated
- *
- * @param key The key of the edge
- * @return information about the edge
- * @see API Documentation
- */
- CompletableFuture replaceEdge(final String key, final Object value);
-
- /**
- * Replaces the edge with key with the one in the body, provided there is such a edge and no precondition is
- * violated
- *
- * @param key The key of the edge
- * @param options Additional options, can be null
- * @return information about the edge
- * @see API Documentation
- */
- CompletableFuture replaceEdge(
- final String key,
- final Object value,
- final EdgeReplaceOptions options);
-
- /**
- * Partially updates the edge identified by document-key. The value must contain a document with the attributes to
- * patch (the patch document). All attributes from the patch document will be added to the existing document if they
- * do not yet exist, and overwritten in the existing document if they do exist there.
- *
- * @param key The key of the edge
- * @return information about the edge
- * @see API Documentation
- */
- CompletableFuture updateEdge(final String key, final Object value);
-
- /**
- * Partially updates the edge identified by document-key. The value must contain a document with the attributes to
- * patch (the patch document). All attributes from the patch document will be added to the existing document if they
- * do not yet exist, and overwritten in the existing document if they do exist there.
- *
- * @param key The key of the edge
- * @param options Additional options, can be null
- * @return information about the edge
- * @see API Documentation
- */
- CompletableFuture updateEdge(
- final String key,
- final Object value,
- final EdgeUpdateOptions options);
-
- /**
- * Removes a edge
- *
- * @param key The key of the edge
- * @see API Documentation
- */
- CompletableFuture deleteEdge(final String key);
-
- /**
- * Removes a edge
- *
- * @param key The key of the edge
- * @param options Additional options, can be null
- * @see API Documentation
- */
- CompletableFuture deleteEdge(final String key, final EdgeDeleteOptions options);
-
-}
diff --git a/core/src/main/java/com/arangodb/async/ArangoGraphAsync.java b/core/src/main/java/com/arangodb/async/ArangoGraphAsync.java
deleted file mode 100644
index cfdaa9b38..000000000
--- a/core/src/main/java/com/arangodb/async/ArangoGraphAsync.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * DISCLAIMER
- *
- * Copyright 2016 ArangoDB GmbH, Cologne, Germany
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright holder is ArangoDB GmbH, Cologne, Germany
- */
-
-package com.arangodb.async;
-
-import com.arangodb.ArangoSerdeAccessor;
-import com.arangodb.entity.EdgeDefinition;
-import com.arangodb.entity.GraphEntity;
-import com.arangodb.model.GraphCreateOptions;
-import com.arangodb.model.ReplaceEdgeDefinitionOptions;
-import com.arangodb.model.VertexCollectionCreateOptions;
-
-import javax.annotation.concurrent.ThreadSafe;
-import java.util.Collection;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Interface for operations on ArangoDB graph level.
- *
- * @author Mark Vollmary
- * @see API Documentation
- */
-@ThreadSafe
-public interface ArangoGraphAsync extends ArangoSerdeAccessor {
-
- /**
- * The the handler of the database the named graph is within
- *
- * @return database handler
- */
- ArangoDatabaseAsync db();
-
- /**
- * The name of the collection
- *
- * @return collection name
- */
- String name();
-
- /**
- * Checks whether the graph exists
- *
- * @return true if the graph exists, otherwise false
- */
- CompletableFuture exists();
-
- /**
- * Creates the graph in the graph module. The creation of a graph requires the name of the graph and a definition of
- * its edges.
- *
- * @param edgeDefinitions An array of definitions for the edge
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture create(final Collection edgeDefinitions);
-
- /**
- * Creates the graph in the graph module. The creation of a graph requires the name of the graph and a definition of
- * its edges.
- *
- * @param edgeDefinitions An array of definitions for the edge
- * @param options Additional options, can be null
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture createGraph(
- final Collection edgeDefinitions,
- final GraphCreateOptions options);
-
- /**
- * Delete an existing graph
- *
- * @return void
- * @see
- * API Documentation
- */
- CompletableFuture drop();
-
- /**
- * Delete an existing graph including
- *
- * @param dropCollections Drop collections of this graph as well. Collections will only be dropped if they are
- * not used in other
- * graphs.
- * @return void
- * @see
- * API Documentation
- */
- CompletableFuture drop(boolean dropCollections);
-
- /**
- * Get a graph from the graph module
- *
- * @return the definition content of this graph
- * @see
- * API Documentation
- */
- CompletableFuture getInfo();
-
- /**
- * Lists all vertex collections used in this graph
- *
- * @return all vertex collections within this graph
- * @see API
- * Documentation
- */
- CompletableFuture> getVertexCollections();
-
- /**
- * Adds a vertex collection to the set of collections of the graph. If the collection does not exist, it will be
- * created.
- *
- * @param name The name of the collection
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture addVertexCollection(final String name);
-
- /**
- * Adds a vertex collection to the set of collections of the graph. If the collection does not exist, it will be
- * created.
- *
- * @param name The name of the collection
- * @param options additional options
- * @return information about the graph
- * @see API
- * Documentation
- * @since ArangoDB 3.9
- */
- CompletableFuture addVertexCollection(final String name, final VertexCollectionCreateOptions options);
-
- /**
- * Returns a handler of the vertex collection by the given name
- *
- * @param name Name of the vertex collection
- * @return collection handler
- */
- ArangoVertexCollectionAsync vertexCollection(final String name);
-
- /**
- * Returns a handler of the edge collection by the given name
- *
- * @param name Name of the edge collection
- * @return collection handler
- */
- ArangoEdgeCollectionAsync edgeCollection(final String name);
-
- /**
- * Lists all edge collections used in this graph
- *
- * @return all edge collections within this graph
- * @see API
- * Documentation
- */
- CompletableFuture> getEdgeDefinitions();
-
- /**
- * Add a new edge definition to the graph
- *
- * @param definition
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture addEdgeDefinition(final EdgeDefinition definition);
-
- /**
- * Change one specific edge definition. This will modify all occurrences of this definition in all graphs known to
- * your database
- *
- * @param definition The edge definition
- * @return information about the graph
- * @see API
- * Documentation
- */
- CompletableFuture replaceEdgeDefinition(final EdgeDefinition definition);
-
- /**
- * Change one specific edge definition. This will modify all occurrences of this definition in all graphs known to
- * your database
- *
- * @param definition The edge definition
- * @param options options
- * @return information about the graph
- * @see