m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMagdalena Grodzińska <mag.grodzinska@gmail.com>2020-01-06 20:10:50 +0100
committerMagdalena Grodzińska <mag.grodzinska@gmail.com>2020-01-06 20:10:50 +0100
commit28c905a7365a37d0874b865f513c64b31d8679f4 (patch)
tree45d5b1b3a702211c82d026942460b97fd6fc1597 /src
parent5f02fa0e59dc84e12fae1fde61bdfa8edb5446b1 (diff)
Add custom serialization to type collection
Diffstat (limited to 'src')
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java18
-rw-r--r--src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java2
2 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java
index 79236ca..40c4d7c 100644
--- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java
@@ -12,6 +12,8 @@ import java.io.ByteArrayOutputStream;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.LinkedHashMap;
/**
@@ -69,24 +71,32 @@ public class UDUPSerializer {
kryo.register(ValueList.class, new Serializer() {
@Override
public void write(Kryo kryo, Output output, Object object) {
-
+ ValueList vl = (ValueList) object;
+ kryo.writeObject(output, ((TypeCollection) vl.getType()).getElementType());
+ kryo.writeObject(output, vl.getValue());
}
@Override
public Object read(Kryo kryo, Input input, Class type) {
- return null;
+ Type t = kryo.readObject(input, Type.class);
+ ArrayList list = kryo.readObject(input, ArrayList.class);
+ return new ValueList(list, t);
}
});
kryo.register(ValueSet.class, new Serializer() {
@Override
public void write(Kryo kryo, Output output, Object object) {
-
+ ValueSet vs = (ValueSet) object;
+ kryo.writeObject(output, ((TypeCollection) vs.getType()).getElementType());
+ kryo.writeObject(output, vs.getValue());
}
@Override
public Object read(Kryo kryo, Input input, Class type) {
- return null;
+ Type t = kryo.readObject(input, Type.class);
+ HashSet set = kryo.readObject(input, HashSet.class);
+ return new ValueSet(set, t);
}
});
diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java
index c4bb8e7..8809312 100644
--- a/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java
+++ b/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java
@@ -14,6 +14,8 @@ import pl.edu.mimuw.cloudatlas.model.ValueInt;
import java.net.InetAddress;
import java.net.UnknownHostException;
+// TODO add serialization tests that target custom serializers (type collections!)
+
public class UDUPTest {
@Test