class AsyncOperationCollection implements IAsyncOperationCollection {

    @Override
    public void delete(final String token) throws DeleteAsyncOperationException {

        try (IPoolGuard poolGuard = new PoolGuard(connectionPool)) {

            ITask task = IOC.resolve(
                    Keys.getOrAdd("db.async_ops_collection.delete"),
                    poolGuard.getObject(),
                    collectionName,
                    token
            );
            task.execute();
        } catch (TaskExecutionException e) {
            throw new DeleteAsyncOperationException("Error during execution complete.", e);
        } catch (PoolGuardException e) {
            throw new DeleteAsyncOperationException("Can't get connection from pool.", e);
        } catch (ResolutionException e) {
            throw new DeleteAsyncOperationException("Can't get Task from IOC", e);
        }
    }

    public  AsyncOperationCollection(final IPool connectionPool, final String collectionName);

}