Skip to content

Commit fa45985

Browse files
committed
serde InternalModule
1 parent 7080d53 commit fa45985

File tree

4 files changed

+54
-1
lines changed

4 files changed

+54
-1
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.arangodb.serde;
2+
3+
import com.arangodb.internal.velocystream.internal.AuthenticationRequest;
4+
import com.fasterxml.jackson.databind.Module;
5+
import com.fasterxml.jackson.databind.module.SimpleModule;
6+
7+
import java.util.function.Supplier;
8+
9+
enum InternalModule implements Supplier<Module> {
10+
INSTANCE;
11+
12+
private final SimpleModule module;
13+
14+
InternalModule() {
15+
module = new SimpleModule();
16+
module.addSerializer(AuthenticationRequest.class, InternalSerializers.AUTHENTICATION_REQUEST);
17+
}
18+
19+
@Override
20+
public Module get() {
21+
return module;
22+
}
23+
24+
}

src/main/java/com/arangodb/serde/InternalSerde.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public interface InternalSerde extends JacksonSerde {
1111
* @param dataType serialization target data type
1212
* @return the created InternalSerde
1313
*/
14-
static JacksonSerde of(final DataType dataType) {
14+
static InternalSerde of(final DataType dataType) {
1515
if (dataType == DataType.JSON) {
1616
return new InternalSerdeImpl(dataType, new ObjectMapper());
1717
} else if (dataType == DataType.VPACK) {

src/main/java/com/arangodb/serde/InternalSerdeImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class InternalSerdeImpl extends JacksonSerdeImpl implements InternalSerde {
1212

1313
InternalSerdeImpl(DataType dataType, ObjectMapper mapper) {
1414
super(dataType, mapper);
15+
mapper.registerModule(InternalModule.INSTANCE.get());
1516
}
1617

1718
@Override
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.arangodb.serde;
2+
3+
import com.arangodb.internal.velocystream.internal.AuthenticationRequest;
4+
import com.fasterxml.jackson.core.JsonGenerator;
5+
import com.fasterxml.jackson.databind.JsonSerializer;
6+
import com.fasterxml.jackson.databind.SerializerProvider;
7+
8+
import java.io.IOException;
9+
10+
final class InternalSerializers {
11+
12+
private InternalSerializers() {
13+
}
14+
15+
static final JsonSerializer<AuthenticationRequest> AUTHENTICATION_REQUEST = new JsonSerializer<AuthenticationRequest>() {
16+
@Override
17+
public void serialize(AuthenticationRequest value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
18+
gen.writeStartArray();
19+
gen.writeNumber(value.getVersion());
20+
gen.writeNumber(value.getType());
21+
gen.writeString(value.getEncryption());
22+
gen.writeString(value.getUser());
23+
gen.writeString(value.getPassword());
24+
gen.writeEndArray();
25+
}
26+
};
27+
28+
}

0 commit comments

Comments
 (0)