diff --git a/src/main/java/com/arangodb/ArangoCollection.java b/src/main/java/com/arangodb/ArangoCollection.java
index 8927d1e67..517cb8fc8 100644
--- a/src/main/java/com/arangodb/ArangoCollection.java
+++ b/src/main/java/com/arangodb/ArangoCollection.java
@@ -20,11 +20,11 @@
package com.arangodb;
-import java.util.Collection;
-
import com.arangodb.entity.*;
import com.arangodb.model.*;
+import java.util.Collection;
+
/**
* Interface for operations on ArangoDB collection level.
*
@@ -34,6 +34,7 @@
* @see Collection API Documentation
* @see Documents API Documentation
*/
+@SuppressWarnings("UnusedReturnValue")
public interface ArangoCollection extends ArangoSerializationAccessor {
/**
@@ -41,14 +42,14 @@ public interface ArangoCollection extends ArangoSerializationAccessor {
*
* @return database handler
*/
- public ArangoDatabase db();
+ ArangoDatabase db();
/**
* The name of the collection
*
* @return collection name
*/
- public String name();
+ String name();
/**
* Creates a new document from the given document, unless there is already a document with the _key given. If no
diff --git a/src/main/java/com/arangodb/ArangoDB.java b/src/main/java/com/arangodb/ArangoDB.java
index bd866ea49..7aa23584f 100644
--- a/src/main/java/com/arangodb/ArangoDB.java
+++ b/src/main/java/com/arangodb/ArangoDB.java
@@ -20,13 +20,6 @@
package com.arangodb;
-import java.io.InputStream;
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-import java.util.Properties;
-
-import javax.net.ssl.SSLContext;
-
import com.arangodb.entity.*;
import com.arangodb.internal.ArangoContext;
import com.arangodb.internal.ArangoDBImpl;
@@ -34,11 +27,7 @@
import com.arangodb.internal.InternalArangoDBBuilder;
import com.arangodb.internal.http.HttpCommunication;
import com.arangodb.internal.http.HttpConnectionFactory;
-import com.arangodb.internal.net.ConnectionFactory;
-import com.arangodb.internal.net.Host;
-import com.arangodb.internal.net.HostHandle;
-import com.arangodb.internal.net.HostHandler;
-import com.arangodb.internal.net.HostResolver;
+import com.arangodb.internal.net.*;
import com.arangodb.internal.util.ArangoDeserializerImpl;
import com.arangodb.internal.util.ArangoSerializationFactory;
import com.arangodb.internal.util.ArangoSerializerImpl;
@@ -52,21 +41,16 @@
import com.arangodb.util.ArangoDeserializer;
import com.arangodb.util.ArangoSerialization;
import com.arangodb.util.ArangoSerializer;
-import com.arangodb.velocypack.VPack;
-import com.arangodb.velocypack.VPackAnnotationFieldFilter;
-import com.arangodb.velocypack.VPackAnnotationFieldNaming;
-import com.arangodb.velocypack.VPackDeserializer;
-import com.arangodb.velocypack.VPackInstanceCreator;
-import com.arangodb.velocypack.VPackJsonDeserializer;
-import com.arangodb.velocypack.VPackJsonSerializer;
-import com.arangodb.velocypack.VPackModule;
-import com.arangodb.velocypack.VPackParser;
-import com.arangodb.velocypack.VPackParserModule;
-import com.arangodb.velocypack.VPackSerializer;
-import com.arangodb.velocypack.ValueType;
+import com.arangodb.velocypack.*;
import com.arangodb.velocystream.Request;
import com.arangodb.velocystream.Response;
+import javax.net.ssl.SSLContext;
+import java.io.InputStream;
+import java.lang.annotation.Annotation;
+import java.util.Collection;
+import java.util.Properties;
+
/**
* Central access point for applications to communicate with an ArangoDB server.
*
@@ -82,6 +66,7 @@
* @author Mark Vollmary
* @author Michele Rastelli
*/
+@SuppressWarnings("UnusedReturnValue")
public interface ArangoDB extends ArangoSerializationAccessor {
/**
@@ -89,9 +74,9 @@ public interface ArangoDB extends ArangoSerializationAccessor {
*
* @author Mark Vollmary
*/
- public static class Builder extends InternalArangoDBBuilder {
+ class Builder extends InternalArangoDBBuilder {
- private static String PROPERTY_KEY_PROTOCOL = "arangodb.protocol";
+ private static final String PROPERTY_KEY_PROTOCOL = "arangodb.protocol";
protected Protocol protocol;
diff --git a/src/main/java/com/arangodb/ArangoDatabase.java b/src/main/java/com/arangodb/ArangoDatabase.java
index a1e43f6d2..3b35f934d 100644
--- a/src/main/java/com/arangodb/ArangoDatabase.java
+++ b/src/main/java/com/arangodb/ArangoDatabase.java
@@ -20,15 +20,15 @@
package com.arangodb;
-import java.util.Collection;
-import java.util.Map;
-
import com.arangodb.entity.*;
-import com.arangodb.model.*;
import com.arangodb.entity.arangosearch.AnalyzerEntity;
+import com.arangodb.model.*;
import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
+import java.util.Collection;
+import java.util.Map;
+
/**
* Interface for operations on ArangoDB database level.
*
@@ -37,6 +37,7 @@
* @see Databases API Documentation
* @see Query API Documentation
*/
+@SuppressWarnings("UnusedReturnValue")
public interface ArangoDatabase extends ArangoSerializationAccessor {
/**
diff --git a/src/main/java/com/arangodb/ArangoEdgeCollection.java b/src/main/java/com/arangodb/ArangoEdgeCollection.java
index 610403bf3..2a4905739 100644
--- a/src/main/java/com/arangodb/ArangoEdgeCollection.java
+++ b/src/main/java/com/arangodb/ArangoEdgeCollection.java
@@ -30,6 +30,7 @@
* @see API Documentation
* @author Mark Vollmary
*/
+@SuppressWarnings("UnusedReturnValue")
public interface ArangoEdgeCollection extends ArangoSerializationAccessor {
/**
diff --git a/src/main/java/com/arangodb/ArangoView.java b/src/main/java/com/arangodb/ArangoView.java
index c5ef0d059..db7811dd3 100644
--- a/src/main/java/com/arangodb/ArangoView.java
+++ b/src/main/java/com/arangodb/ArangoView.java
@@ -29,6 +29,7 @@
* @author Mark Vollmary
* @since ArangoDB 3.4.0
*/
+@SuppressWarnings("UnusedReturnValue")
public interface ArangoView extends ArangoSerializationAccessor {
/**
diff --git a/src/main/java/com/arangodb/entity/BaseDocument.java b/src/main/java/com/arangodb/entity/BaseDocument.java
index b3b4c0088..a1a92b81a 100644
--- a/src/main/java/com/arangodb/entity/BaseDocument.java
+++ b/src/main/java/com/arangodb/entity/BaseDocument.java
@@ -20,12 +20,12 @@
package com.arangodb.entity;
+import com.arangodb.entity.DocumentField.Type;
+
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
-import com.arangodb.entity.DocumentField.Type;
-
/**
* @author Mark Vollmary
*
@@ -44,7 +44,7 @@ public class BaseDocument implements Serializable {
public BaseDocument() {
super();
- properties = new HashMap();
+ properties = new HashMap<>();
}
public BaseDocument(final String key) {
@@ -117,17 +117,15 @@ public Object getAttribute(final String key) {
@Override
public String toString() {
- final StringBuilder sb = new StringBuilder();
- sb.append("BaseDocument [documentRevision=");
- sb.append(revision);
- sb.append(", documentHandle=");
- sb.append(id);
- sb.append(", documentKey=");
- sb.append(key);
- sb.append(", properties=");
- sb.append(properties);
- sb.append("]");
- return sb.toString();
+ return "BaseDocument [documentRevision=" +
+ revision +
+ ", documentHandle=" +
+ id +
+ ", documentKey=" +
+ key +
+ ", properties=" +
+ properties +
+ "]";
}
@Override
@@ -175,13 +173,8 @@ public boolean equals(final Object obj) {
return false;
}
if (revision == null) {
- if (other.revision != null) {
- return false;
- }
- } else if (!revision.equals(other.revision)) {
- return false;
- }
- return true;
+ return other.revision == null;
+ } else return revision.equals(other.revision);
}
}
diff --git a/src/main/java/com/arangodb/entity/BaseEdgeDocument.java b/src/main/java/com/arangodb/entity/BaseEdgeDocument.java
index 362a98442..fb0b50371 100644
--- a/src/main/java/com/arangodb/entity/BaseEdgeDocument.java
+++ b/src/main/java/com/arangodb/entity/BaseEdgeDocument.java
@@ -20,10 +20,10 @@
package com.arangodb.entity;
-import java.util.Map;
-
import com.arangodb.entity.DocumentField.Type;
+import java.util.Map;
+
/**
* @author Mark Vollmary
*
@@ -83,21 +83,19 @@ public void setTo(final String to) {
@Override
public String toString() {
- final StringBuilder sb = new StringBuilder();
- sb.append("BaseDocument [documentRevision=");
- sb.append(revision);
- sb.append(", documentHandle=");
- sb.append(id);
- sb.append(", documentKey=");
- sb.append(key);
- sb.append(", from=");
- sb.append(from);
- sb.append(", to=");
- sb.append(to);
- sb.append(", properties=");
- sb.append(properties);
- sb.append("]");
- return sb.toString();
+ return "BaseDocument [documentRevision=" +
+ revision +
+ ", documentHandle=" +
+ id +
+ ", documentKey=" +
+ key +
+ ", from=" +
+ from +
+ ", to=" +
+ to +
+ ", properties=" +
+ properties +
+ "]";
}
@Override
@@ -129,13 +127,8 @@ public boolean equals(final Object obj) {
return false;
}
if (to == null) {
- if (other.to != null) {
- return false;
- }
- } else if (!to.equals(other.to)) {
- return false;
- }
- return true;
+ return other.to == null;
+ } else return to.equals(other.to);
}
}
diff --git a/src/main/java/com/arangodb/entity/DocumentField.java b/src/main/java/com/arangodb/entity/DocumentField.java
index cf4b22f97..d6ff3d158 100644
--- a/src/main/java/com/arangodb/entity/DocumentField.java
+++ b/src/main/java/com/arangodb/entity/DocumentField.java
@@ -33,12 +33,12 @@
@Target({ ElementType.FIELD })
public @interface DocumentField {
- public static enum Type {
+ enum Type {
ID("_id"), KEY("_key"), REV("_rev"), FROM("_from"), TO("_to");
private final String serializeName;
- private Type(final String serializeName) {
+ Type(final String serializeName) {
this.serializeName = serializeName;
}
diff --git a/src/main/java/com/arangodb/entity/DocumentImportEntity.java b/src/main/java/com/arangodb/entity/DocumentImportEntity.java
index 4af6f863d..50dc741b2 100644
--- a/src/main/java/com/arangodb/entity/DocumentImportEntity.java
+++ b/src/main/java/com/arangodb/entity/DocumentImportEntity.java
@@ -38,7 +38,7 @@ public class DocumentImportEntity implements Entity {
public DocumentImportEntity() {
super();
- details = new ArrayList();
+ details = new ArrayList<>();
}
/**
diff --git a/src/main/java/com/arangodb/entity/LogLevelEntity.java b/src/main/java/com/arangodb/entity/LogLevelEntity.java
index d6046c61f..192ed1d51 100644
--- a/src/main/java/com/arangodb/entity/LogLevelEntity.java
+++ b/src/main/java/com/arangodb/entity/LogLevelEntity.java
@@ -27,7 +27,7 @@
public class LogLevelEntity implements Entity {
public enum LogLevel {
- FATAL, ERROR, WARNING, INFO, DEBUG, TRACE, DEFAULT;
+ FATAL, ERROR, WARNING, INFO, DEBUG, TRACE, DEFAULT
}
private LogLevel agency;
diff --git a/src/main/java/com/arangodb/entity/MetaAware.java b/src/main/java/com/arangodb/entity/MetaAware.java
index fe22725d6..952f5697a 100644
--- a/src/main/java/com/arangodb/entity/MetaAware.java
+++ b/src/main/java/com/arangodb/entity/MetaAware.java
@@ -8,8 +8,8 @@
*/
public interface MetaAware {
- public Map getMeta();
+ Map getMeta();
- public void setMeta(final Map meta);
+ void setMeta(final Map meta);
}
diff --git a/src/main/java/com/arangodb/entity/QueryCachePropertiesEntity.java b/src/main/java/com/arangodb/entity/QueryCachePropertiesEntity.java
index b8e70ec77..38df32031 100644
--- a/src/main/java/com/arangodb/entity/QueryCachePropertiesEntity.java
+++ b/src/main/java/com/arangodb/entity/QueryCachePropertiesEntity.java
@@ -30,7 +30,7 @@
public class QueryCachePropertiesEntity implements Entity {
public enum CacheMode {
- off, on, demand;
+ off, on, demand
}
private CacheMode mode;
diff --git a/src/main/java/com/arangodb/entity/ShardingStrategy.java b/src/main/java/com/arangodb/entity/ShardingStrategy.java
index 5252ec065..efc28a6ac 100644
--- a/src/main/java/com/arangodb/entity/ShardingStrategy.java
+++ b/src/main/java/com/arangodb/entity/ShardingStrategy.java
@@ -31,10 +31,10 @@ public enum ShardingStrategy {
ENTERPRISE_SMART_EDGE_COMPAT("enterprise-smart-edge-compat"),
HASH("hash"),
ENTERPRISE_HASH_SMART_EDGE("enterprise-hash-smart-edge");
-
- private String internalName;
-
- private ShardingStrategy(String internalName) {
+
+ private final String internalName;
+
+ ShardingStrategy(String internalName) {
this.internalName = internalName;
}
diff --git a/src/main/java/com/arangodb/entity/arangosearch/ArangoSearchProperties.java b/src/main/java/com/arangodb/entity/arangosearch/ArangoSearchProperties.java
index e2c5e8db6..e6ef631f0 100644
--- a/src/main/java/com/arangodb/entity/arangosearch/ArangoSearchProperties.java
+++ b/src/main/java/com/arangodb/entity/arangosearch/ArangoSearchProperties.java
@@ -40,8 +40,8 @@ public class ArangoSearchProperties {
public ArangoSearchProperties() {
super();
- links = new ArrayList();
- primarySorts = new ArrayList();
+ links = new ArrayList<>();
+ primarySorts = new ArrayList<>();
}
public Long getCommitIntervalMsec() {
diff --git a/src/main/java/com/arangodb/entity/arangosearch/CollectionLink.java b/src/main/java/com/arangodb/entity/arangosearch/CollectionLink.java
index 5ad712edb..78bcd5250 100644
--- a/src/main/java/com/arangodb/entity/arangosearch/CollectionLink.java
+++ b/src/main/java/com/arangodb/entity/arangosearch/CollectionLink.java
@@ -40,8 +40,8 @@ public class CollectionLink {
private CollectionLink(final String name) {
super();
this.name = name;
- fields = new ArrayList();
- analyzers = new ArrayList();
+ fields = new ArrayList<>();
+ analyzers = new ArrayList<>();
}
/**
diff --git a/src/main/java/com/arangodb/entity/arangosearch/FieldLink.java b/src/main/java/com/arangodb/entity/arangosearch/FieldLink.java
index 51467212b..de3acf967 100644
--- a/src/main/java/com/arangodb/entity/arangosearch/FieldLink.java
+++ b/src/main/java/com/arangodb/entity/arangosearch/FieldLink.java
@@ -16,8 +16,8 @@ public class FieldLink {
private FieldLink(final String name) {
super();
this.name = name;
- fields = new ArrayList();
- analyzers = new ArrayList();
+ fields = new ArrayList<>();
+ analyzers = new ArrayList<>();
}
/**
diff --git a/src/main/java/com/arangodb/entity/arangosearch/PrimarySort.java b/src/main/java/com/arangodb/entity/arangosearch/PrimarySort.java
index 74884404f..60df3c67e 100644
--- a/src/main/java/com/arangodb/entity/arangosearch/PrimarySort.java
+++ b/src/main/java/com/arangodb/entity/arangosearch/PrimarySort.java
@@ -43,11 +43,7 @@ public static PrimarySort on(final String fieldName) {
* @return primarySort
*/
public PrimarySort ascending(final Boolean ascending) {
- if (ascending) {
- this.ascending = true;
- } else {
- this.ascending = false;
- }
+ this.ascending = ascending;
return this;
}
diff --git a/src/main/java/com/arangodb/internal/ArangoContext.java b/src/main/java/com/arangodb/internal/ArangoContext.java
index e52d8a17e..058bcb97f 100644
--- a/src/main/java/com/arangodb/internal/ArangoContext.java
+++ b/src/main/java/com/arangodb/internal/ArangoContext.java
@@ -33,7 +33,7 @@ public class ArangoContext {
public ArangoContext() {
super();
- headerParam = new HashMap();
+ headerParam = new HashMap<>();
}
public Map getHeaderParam() {
diff --git a/src/main/java/com/arangodb/internal/ArangoDBImpl.java b/src/main/java/com/arangodb/internal/ArangoDBImpl.java
index efdc34782..bb93b1ea6 100644
--- a/src/main/java/com/arangodb/internal/ArangoDBImpl.java
+++ b/src/main/java/com/arangodb/internal/ArangoDBImpl.java
@@ -20,18 +20,11 @@
package com.arangodb.internal;
-import java.io.IOException;
-import java.util.Collection;
-
-import com.arangodb.entity.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.arangodb.ArangoDB;
import com.arangodb.ArangoDBException;
import com.arangodb.ArangoDatabase;
import com.arangodb.Protocol;
-import com.arangodb.internal.ArangoExecutor.ResponseDeserializer;
+import com.arangodb.entity.*;
import com.arangodb.internal.http.HttpCommunication;
import com.arangodb.internal.http.HttpProtocol;
import com.arangodb.internal.net.CommunicationProtocol;
@@ -46,9 +39,13 @@
import com.arangodb.model.UserUpdateOptions;
import com.arangodb.util.ArangoCursorInitializer;
import com.arangodb.util.ArangoSerialization;
-import com.arangodb.velocypack.exception.VPackException;
import com.arangodb.velocystream.Request;
import com.arangodb.velocystream.Response;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.Collection;
/**
* @author Mark Vollmary
@@ -61,7 +58,7 @@ public class ArangoDBImpl extends InternalArangoDB implement
private static final Logger LOGGER = LoggerFactory.getLogger(ArangoDBImpl.class);
private ArangoCursorInitializer cursorInitializer;
- private CommunicationProtocol cp;
+ private final CommunicationProtocol cp;
public ArangoDBImpl(final VstCommunicationSync.Builder vstBuilder, final HttpCommunication.Builder httpBuilder,
final ArangoSerializationFactory util, final Protocol protocol, final HostResolver hostResolver,
@@ -219,22 +216,12 @@ public void grantDefaultCollectionAccess(final String user, final Permissions pe
@Override
public Response execute(final Request request) throws ArangoDBException {
- return executor.execute(request, new ResponseDeserializer() {
- @Override
- public Response deserialize(final Response response) throws VPackException {
- return response;
- }
- });
+ return executor.execute(request, response -> response);
}
@Override
public Response execute(final Request request, final HostHandle hostHandle) throws ArangoDBException {
- return executor.execute(request, new ResponseDeserializer() {
- @Override
- public Response deserialize(final Response response) throws VPackException {
- return response;
- }
- }, hostHandle);
+ return executor.execute(request, response -> response, hostHandle);
}
@Override
diff --git a/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java b/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
index cc5880d82..174ebeb48 100644
--- a/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
+++ b/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
@@ -20,18 +20,7 @@
package com.arangodb.internal;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-
-import com.arangodb.ArangoCollection;
-import com.arangodb.ArangoCursor;
-import com.arangodb.ArangoDBException;
-import com.arangodb.ArangoDatabase;
-import com.arangodb.ArangoGraph;
-import com.arangodb.ArangoRoute;
-import com.arangodb.ArangoSearch;
-import com.arangodb.ArangoView;
+import com.arangodb.*;
import com.arangodb.entity.*;
import com.arangodb.entity.arangosearch.AnalyzerEntity;
import com.arangodb.internal.cursor.ArangoCursorImpl;
@@ -44,6 +33,10 @@
import com.arangodb.velocypack.Type;
import com.arangodb.velocystream.Request;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+
/**
* @author Mark Vollmary
* @author Michele Rastelli
@@ -225,7 +218,7 @@ public void close(final String id, Map meta) {
return cursorInitializer != null ?
cursorInitializer.createInstance(this, execute, type, result) :
- new ArangoCursorImpl(this, execute, type, result);
+ new ArangoCursorImpl<>(this, execute, type, result);
}
@Override
@@ -401,7 +394,7 @@ protected ArangoDatabaseImpl setCursorInitializer(final ArangoCursorInitializer
@Override
public ArangoRoute route(final String... path) {
- return new ArangoRouteImpl(this, createPath(path), Collections.emptyMap());
+ return new ArangoRouteImpl(this, createPath(path), Collections.emptyMap());
}
@Override
diff --git a/src/main/java/com/arangodb/internal/ArangoExecutor.java b/src/main/java/com/arangodb/internal/ArangoExecutor.java
index ff73e1803..ff311a1ef 100644
--- a/src/main/java/com/arangodb/internal/ArangoExecutor.java
+++ b/src/main/java/com/arangodb/internal/ArangoExecutor.java
@@ -20,21 +20,30 @@
package com.arangodb.internal;
-import java.lang.reflect.Type;
-
import com.arangodb.entity.Entity;
import com.arangodb.internal.util.ArangoSerializationFactory;
import com.arangodb.internal.util.ArangoSerializationFactory.Serializer;
import com.arangodb.velocypack.exception.VPackException;
import com.arangodb.velocystream.Response;
+import java.lang.reflect.Type;
+
/**
* @author Mark Vollmary
*/
public abstract class ArangoExecutor {
- public static interface ResponseDeserializer {
- T deserialize(Response response) throws VPackException;
+ @SuppressWarnings("unchecked")
+ protected T createResult(final Type type, final Response response) {
+ if (type != Void.class && response.getBody() != null) {
+ if (type instanceof Class && Entity.class.isAssignableFrom((Class) type) ) {
+ return (T) util.get(Serializer.INTERNAL).deserialize(response.getBody(), type);
+ } else {
+ return (T) util.get(Serializer.CUSTOM).deserialize(response.getBody(), type);
+ }
+ } else {
+ return null;
+ }
}
private final DocumentCache documentCache;
@@ -50,17 +59,8 @@ public DocumentCache documentCache() {
return documentCache;
}
- @SuppressWarnings("unchecked")
- protected T createResult(final Type type, final Response response) {
- if (type != Void.class && response.getBody() != null) {
- if (type instanceof Class && Entity.class.isAssignableFrom((Class) type) ) {
- return (T) util.get(Serializer.INTERNAL).deserialize(response.getBody(), type);
- } else {
- return (T) util.get(Serializer.CUSTOM).deserialize(response.getBody(), type);
- }
- } else {
- return (T) null;
- }
+ public interface ResponseDeserializer {
+ T deserialize(Response response) throws VPackException;
}
}
diff --git a/src/main/java/com/arangodb/internal/ArangoExecutorSync.java b/src/main/java/com/arangodb/internal/ArangoExecutorSync.java
index b52562284..c9b0a5060 100644
--- a/src/main/java/com/arangodb/internal/ArangoExecutorSync.java
+++ b/src/main/java/com/arangodb/internal/ArangoExecutorSync.java
@@ -20,12 +20,6 @@
package com.arangodb.internal;
-import java.io.IOException;
-import java.lang.reflect.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.arangodb.ArangoDBException;
import com.arangodb.entity.MetaAware;
import com.arangodb.internal.net.CommunicationProtocol;
@@ -34,6 +28,11 @@
import com.arangodb.velocypack.exception.VPackException;
import com.arangodb.velocystream.Request;
import com.arangodb.velocystream.Response;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.lang.reflect.Type;
/**
* @author Mark Vollmary
@@ -56,13 +55,7 @@ public T execute(final Request request, final Type type) throws ArangoDBExce
}
public T execute(final Request request, final Type type, final HostHandle hostHandle) throws ArangoDBException {
- return execute(request, new ResponseDeserializer() {
- @Override
- public T deserialize(final Response response) throws VPackException {
- T result = createResult(type, response);
- return result;
- }
- }, hostHandle);
+ return execute(request, response -> createResult(type, response), hostHandle);
}
public T execute(final Request request, final ResponseDeserializer responseDeserializer) throws ArangoDBException {
diff --git a/src/main/java/com/arangodb/internal/ArangoRouteImpl.java b/src/main/java/com/arangodb/internal/ArangoRouteImpl.java
index 4583b68e1..fd6f86702 100644
--- a/src/main/java/com/arangodb/internal/ArangoRouteImpl.java
+++ b/src/main/java/com/arangodb/internal/ArangoRouteImpl.java
@@ -20,15 +20,13 @@
package com.arangodb.internal;
-import java.util.Map;
-
import com.arangodb.ArangoDBException;
import com.arangodb.ArangoRoute;
-import com.arangodb.internal.ArangoExecutor.ResponseDeserializer;
-import com.arangodb.velocypack.exception.VPackException;
import com.arangodb.velocystream.RequestType;
import com.arangodb.velocystream.Response;
+import java.util.Map;
+
/**
* @author Mark Vollmary
*
@@ -64,12 +62,7 @@ public ArangoRoute withBody(final Object body) {
}
private Response request(final RequestType requestType) {
- return executor.execute(createRequest(requestType), new ResponseDeserializer() {
- @Override
- public Response deserialize(final Response response) throws VPackException {
- return response;
- }
- });
+ return executor.execute(createRequest(requestType), response -> response);
}
@Override
diff --git a/src/main/java/com/arangodb/internal/DocumentCache.java b/src/main/java/com/arangodb/internal/DocumentCache.java
index d0b1c1263..2ed95e532 100644
--- a/src/main/java/com/arangodb/internal/DocumentCache.java
+++ b/src/main/java/com/arangodb/internal/DocumentCache.java
@@ -20,19 +20,15 @@
package com.arangodb.internal;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
import com.arangodb.ArangoDBException;
import com.arangodb.entity.DocumentField;
import com.arangodb.entity.DocumentField.Type;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.*;
+import java.util.Map.Entry;
+
/**
* @author Mark Vollmary
*
@@ -43,7 +39,7 @@ public class DocumentCache {
public DocumentCache() {
super();
- cache = new HashMap, Map>();
+ cache = new HashMap<>();
}
public void setValues(final Object doc, final Map values) throws ArangoDBException {
@@ -55,15 +51,13 @@ public void setValues(final Object doc, final Map va
field.set(doc, value.getValue());
}
}
- } catch (final IllegalArgumentException e) {
- throw new ArangoDBException(e);
- } catch (final IllegalAccessException e) {
+ } catch (final IllegalArgumentException | IllegalAccessException e) {
throw new ArangoDBException(e);
}
}
private Map getFields(final Class> clazz) {
- Map fields = new HashMap();
+ Map fields = new HashMap<>();
if (!isTypeRestricted(clazz)) {
fields = cache.get(clazz);
if (fields == null) {
@@ -79,9 +73,9 @@ private boolean isTypeRestricted(final Class> type) {
}
private Map createFields(final Class> clazz) {
- final Map fields = new HashMap();
+ final Map fields = new HashMap<>();
Class> tmp = clazz;
- final Collection values = new ArrayList(
+ final Collection values = new ArrayList<>(
Arrays.asList(DocumentField.Type.values()));
while (tmp != null && tmp != Object.class && values.size() > 0) {
final Field[] declaredFields = tmp.getDeclaredFields();
diff --git a/src/main/java/com/arangodb/internal/InternalArangoCollection.java b/src/main/java/com/arangodb/internal/InternalArangoCollection.java
index d275a5e30..cc9677c65 100644
--- a/src/main/java/com/arangodb/internal/InternalArangoCollection.java
+++ b/src/main/java/com/arangodb/internal/InternalArangoCollection.java
@@ -20,21 +20,8 @@
package com.arangodb.internal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
import com.arangodb.ArangoDBException;
-import com.arangodb.entity.DocumentCreateEntity;
-import com.arangodb.entity.DocumentDeleteEntity;
-import com.arangodb.entity.DocumentField;
-import com.arangodb.entity.DocumentUpdateEntity;
-import com.arangodb.entity.ErrorEntity;
-import com.arangodb.entity.IndexEntity;
-import com.arangodb.entity.MultiDocumentEntity;
-import com.arangodb.entity.Permissions;
+import com.arangodb.entity.*;
import com.arangodb.internal.ArangoExecutor.ResponseDeserializer;
import com.arangodb.internal.util.ArangoSerializationFactory.Serializer;
import com.arangodb.internal.util.DocumentUtil;
@@ -43,10 +30,10 @@
import com.arangodb.util.ArangoSerializer;
import com.arangodb.velocypack.Type;
import com.arangodb.velocypack.VPackSlice;
-import com.arangodb.velocypack.exception.VPackException;
import com.arangodb.velocystream.Request;
import com.arangodb.velocystream.RequestType;
-import com.arangodb.velocystream.Response;
+
+import java.util.*;
/**
* @author Mark Vollmary
@@ -106,30 +93,26 @@ protected Request insertDocumentRequest(final T value, final DocumentCreateO
protected ResponseDeserializer> insertDocumentResponseDeserializer(
final T value, final DocumentCreateOptions options) {
- return new ResponseDeserializer>() {
- @SuppressWarnings("unchecked")
- @Override
- public DocumentCreateEntity deserialize(final Response response) throws VPackException {
- final VPackSlice body = response.getBody();
- final DocumentCreateEntity doc = util().deserialize(body, DocumentCreateEntity.class);
- final VPackSlice newDoc = body.get(NEW);
- if (newDoc.isObject()) {
- doc.setNew((T) util(Serializer.CUSTOM).deserialize(newDoc, value.getClass()));
- }
- final VPackSlice oldDoc = body.get(OLD);
- if (oldDoc.isObject()) {
- doc.setOld((T) util(Serializer.CUSTOM).deserialize(oldDoc, value.getClass()));
- }
- if (options == null || Boolean.TRUE != options.getSilent()) {
- final Map values = new HashMap();
- values.put(DocumentField.Type.ID, doc.getId());
- values.put(DocumentField.Type.KEY, doc.getKey());
- values.put(DocumentField.Type.REV, doc.getRev());
- executor.documentCache().setValues(value, values);
- }
- return doc;
- }
- };
+ return response -> {
+ final VPackSlice body = response.getBody();
+ final DocumentCreateEntity doc = util().deserialize(body, DocumentCreateEntity.class);
+ final VPackSlice newDoc = body.get(NEW);
+ if (newDoc.isObject()) {
+ doc.setNew(util(Serializer.CUSTOM).deserialize(newDoc, value.getClass()));
+ }
+ final VPackSlice oldDoc = body.get(OLD);
+ if (oldDoc.isObject()) {
+ doc.setOld(util(Serializer.CUSTOM).deserialize(oldDoc, value.getClass()));
+ }
+ if (options == null || Boolean.TRUE != options.getSilent()) {
+ final Map values = new HashMap<>();
+ values.put(DocumentField.Type.ID, doc.getId());
+ values.put(DocumentField.Type.KEY, doc.getKey());
+ values.put(DocumentField.Type.REV, doc.getRev());
+ executor.documentCache().setValues(value, values);
+ }
+ return doc;
+ };
}
protected Request insertDocumentsRequest(final Collection values, final DocumentCreateOptions params) {
@@ -148,49 +131,45 @@ protected Request insertDocumentsRequest(final Collection values, final D
@SuppressWarnings("unchecked")
protected ResponseDeserializer>> insertDocumentsResponseDeserializer(
final Collection values, final DocumentCreateOptions params) {
- return new ResponseDeserializer>>() {
- @Override
- public MultiDocumentEntity> deserialize(final Response response)
- throws VPackException {
- Class type = null;
- if (Boolean.TRUE == params.getReturnNew()) {
- if (!values.isEmpty()) {
- type = (Class) values.iterator().next().getClass();
- }
- }
- final MultiDocumentEntity> multiDocument = new MultiDocumentEntity>();
- final Collection> docs = new ArrayList>();
- final Collection errors = new ArrayList();
- final Collection