Skip to content

Commit 228a6cd

Browse files
author
mpv1989
committed
Refactor serialization API
1 parent 8ec88ab commit 228a6cd

22 files changed

+307
-169
lines changed

src/main/java/com/arangodb/ArangoDB.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
import com.arangodb.model.UserUpdateOptions;
5858
import com.arangodb.util.ArangoDeserializer;
5959
import com.arangodb.util.ArangoSerializer;
60-
import com.arangodb.util.ArangoUtil;
60+
import com.arangodb.util.ArangoSerialization;
6161
import com.arangodb.velocypack.VPack;
6262
import com.arangodb.velocypack.VPackAnnotationFieldFilter;
6363
import com.arangodb.velocypack.VPackAnnotationFieldNaming;
@@ -345,10 +345,10 @@ public synchronized ArangoDB build() {
345345

346346
}
347347

348-
public ArangoDB(final CommunicationSync.Builder commBuilder, final ArangoUtil util,
348+
public ArangoDB(final CommunicationSync.Builder commBuilder, final ArangoSerialization util,
349349
final CollectionCache collectionCache) {
350350
super(new ArangoExecutorSync(commBuilder.build(util, collectionCache), util, new DocumentCache(),
351-
collectionCache));
351+
collectionCache), util);
352352
final Communication<Response, ConnectionSync> cacheCom = commBuilder.build(util, collectionCache);
353353
collectionCache.init(new DBAccess() {
354354
@Override

src/main/java/com/arangodb/ArangoDatabase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
import com.arangodb.model.GraphCreateOptions;
5656
import com.arangodb.model.TransactionOptions;
5757
import com.arangodb.model.TraversalOptions;
58-
import com.arangodb.util.ArangoUtil;
58+
import com.arangodb.util.ArangoSerialization;
5959
import com.arangodb.velocypack.Type;
6060
import com.arangodb.velocystream.Request;
6161
import com.arangodb.velocystream.Response;
@@ -67,12 +67,12 @@
6767
public class ArangoDatabase extends InternalArangoDatabase<ArangoDB, ArangoExecutorSync, Response, ConnectionSync> {
6868

6969
protected ArangoDatabase(final ArangoDB arangoDB, final String name) {
70-
super(arangoDB, arangoDB.executor(), name);
70+
super(arangoDB, arangoDB.executor(), arangoDB.util(), name);
7171
}
7272

73-
protected ArangoDatabase(final Communication<Response, ConnectionSync> communication, final ArangoUtil util,
73+
protected ArangoDatabase(final Communication<Response, ConnectionSync> communication, final ArangoSerialization util,
7474
final DocumentCache documentCache, final CollectionCache collectionCache, final String name) {
75-
super(null, new ArangoExecutorSync(communication, util, documentCache, collectionCache), name);
75+
super(null, new ArangoExecutorSync(communication, util, documentCache, collectionCache), util, name);
7676
}
7777

7878
/**

src/main/java/com/arangodb/internal/ArangoCursorIterator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public T next() {
6868
if (!hasNext()) {
6969
throw new NoSuchElementException();
7070
}
71-
return db.executor.deserialize(result.getResult().get(pos++), cursor.getType());
71+
return db.util().deserialize(result.getResult().get(pos++), cursor.getType());
7272
}
7373

7474
@Override

src/main/java/com/arangodb/internal/ArangoExecuteable.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
package com.arangodb.internal;
2222

2323
import com.arangodb.internal.velocystream.Connection;
24-
import com.arangodb.util.ArangoUtil;
24+
import com.arangodb.util.ArangoSerialization;
2525

2626
/**
2727
* @author Mark - mark at arangodb.com
@@ -30,17 +30,19 @@
3030
public abstract class ArangoExecuteable<E extends ArangoExecutor<R, C>, R, C extends Connection> {
3131

3232
protected final E executor;
33+
private final ArangoSerialization util;
3334

34-
public ArangoExecuteable(final E executor) {
35+
public ArangoExecuteable(final E executor, final ArangoSerialization util) {
3536
super();
3637
this.executor = executor;
38+
this.util = util;
3739
}
3840

3941
protected E executor() {
4042
return executor;
4143
}
4244

43-
public ArangoUtil util() {
44-
return executor.util();
45+
public ArangoSerialization util() {
46+
return util;
4547
}
4648
}

src/main/java/com/arangodb/internal/ArangoExecutor.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
import com.arangodb.ArangoDBException;
3030
import com.arangodb.internal.velocystream.Communication;
3131
import com.arangodb.internal.velocystream.Connection;
32-
import com.arangodb.util.ArangoUtil;
32+
import com.arangodb.util.ArangoSerializer;
33+
import com.arangodb.util.ArangoSerialization;
3334
import com.arangodb.velocypack.VPackSlice;
3435
import com.arangodb.velocypack.exception.VPackException;
3536
import com.arangodb.velocystream.Response;
@@ -52,9 +53,9 @@ public static interface ResponseDeserializer<T> {
5253
private final Communication<R, C> communication;
5354
private final DocumentCache documentCache;
5455
private final CollectionCache collectionCache;
55-
private final ArangoUtil util;
56+
private final ArangoSerialization util;
5657

57-
protected ArangoExecutor(final Communication<R, C> communication, final ArangoUtil util,
58+
protected ArangoExecutor(final Communication<R, C> communication, final ArangoSerialization util,
5859
final DocumentCache documentCache, final CollectionCache collectionCache) {
5960
super();
6061
this.communication = communication;
@@ -75,7 +76,7 @@ protected CollectionCache collectionCache() {
7576
return collectionCache;
7677
}
7778

78-
protected ArangoUtil util() {
79+
protected ArangoSerialization util() {
7980
return util;
8081
}
8182

@@ -134,30 +135,37 @@ protected <T> T createResult(final Type type, final Response response) {
134135
return (T) ((type != Void.class && response.getBody() != null) ? deserialize(response.getBody(), type) : null);
135136
}
136137

138+
@Deprecated
137139
protected <T> T deserialize(final VPackSlice vpack, final Type type) throws ArangoDBException {
138140
return util.deserialize(vpack, type);
139141
}
140142

143+
@Deprecated
141144
protected VPackSlice serialize(final Object entity) throws ArangoDBException {
142145
return util.serialize(entity);
143146
}
144147

148+
@Deprecated
145149
protected VPackSlice serialize(final Object entity, final boolean serializeNullValues) throws ArangoDBException {
146-
return util.serialize(entity, serializeNullValues);
150+
return util.serialize(entity, new ArangoSerializer.Options().serializeNullValues(serializeNullValues));
147151
}
148152

153+
@Deprecated
149154
protected VPackSlice serialize(final Object entity, final Type type) throws ArangoDBException {
150-
return util.serialize(entity, type);
155+
return util.serialize(entity, new ArangoSerializer.Options().type(type));
151156
}
152157

158+
@Deprecated
153159
protected VPackSlice serialize(final Object entity, final Type type, final boolean serializeNullValues)
154160
throws ArangoDBException {
155-
return util.serialize(entity, type, serializeNullValues);
161+
return util.serialize(entity,
162+
new ArangoSerializer.Options().type(type).serializeNullValues(serializeNullValues));
156163
}
157164

165+
@Deprecated
158166
protected VPackSlice serialize(final Object entity, final Type type, final Map<String, Object> additionalFields)
159167
throws ArangoDBException {
160-
return util.serialize(entity, type, additionalFields);
168+
return util.serialize(entity, new ArangoSerializer.Options().type(type).additionalFields(additionalFields));
161169
}
162170

163171
}

src/main/java/com/arangodb/internal/ArangoExecutorSync.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.arangodb.ArangoDBException;
2626
import com.arangodb.internal.velocystream.Communication;
2727
import com.arangodb.internal.velocystream.ConnectionSync;
28-
import com.arangodb.util.ArangoUtil;
28+
import com.arangodb.util.ArangoSerialization;
2929
import com.arangodb.velocypack.exception.VPackException;
3030
import com.arangodb.velocystream.Request;
3131
import com.arangodb.velocystream.Response;
@@ -36,7 +36,7 @@
3636
*/
3737
public class ArangoExecutorSync extends ArangoExecutor<Response, ConnectionSync> {
3838

39-
public ArangoExecutorSync(final Communication<Response, ConnectionSync> communication, final ArangoUtil util,
39+
public ArangoExecutorSync(final Communication<Response, ConnectionSync> communication, final ArangoSerialization util,
4040
final DocumentCache documentCache, final CollectionCache collectionCache) {
4141
super(communication, util, documentCache, collectionCache);
4242
}

0 commit comments

Comments
 (0)