X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fserial%2FSerialUtils.java;h=fe62d283cdceb48afc530ce239dde40ac774f06e;hb=0988831f084e27de9927c1bb29e338e9263bfa42;hp=decf57525fb30336ab00dee5be5bb2952d5f8196;hpb=452f38c8b9e98215f4ed6def6f3f8fd5dfa75daa;p=nikiroo-utils.git
diff --git a/src/be/nikiroo/utils/serial/SerialUtils.java b/src/be/nikiroo/utils/serial/SerialUtils.java
index decf575..fe62d28 100644
--- a/src/be/nikiroo/utils/serial/SerialUtils.java
+++ b/src/be/nikiroo/utils/serial/SerialUtils.java
@@ -1,17 +1,17 @@
package be.nikiroo.utils.serial;
-import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.NotSerializableException;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.UnknownFormatConversionException;
-import be.nikiroo.utils.ImageUtils;
+import be.nikiroo.utils.Image;
/**
* Small class to help with serialisation.
@@ -37,6 +37,7 @@ import be.nikiroo.utils.ImageUtils;
*
Enum (any enum whose name and value is known by the caller)
* java.awt.image.BufferedImage (as a {@link CustomSerializer})
* An array of the above (as a {@link CustomSerializer})
+ * URL
*
*
* @author niki
@@ -106,26 +107,46 @@ public class SerialUtils {
}
});
- // Images (this is currently the only supported image type by default)
- customTypes.put("java.awt.image.BufferedImage", new CustomSerializer() {
+ // URL:
+ customTypes.put("java.net.URL", new CustomSerializer() {
@Override
protected String toString(Object value) {
- try {
- return ImageUtils.toBase64((BufferedImage) value);
- } catch (IOException e) {
- throw new UnknownFormatConversionException(e.getMessage());
+ if (value != null) {
+ return ((URL) value).toString();
}
+ return null;
+ }
+
+ @Override
+ protected Object fromString(String content) throws IOException {
+ if (content != null) {
+ return new URL(content);
+ }
+ return null;
+ }
+
+ @Override
+ protected String getType() {
+ return "java.net.URL";
+ }
+ });
+
+ // Images (this is currently the only supported image type by default)
+ customTypes.put("be.nikiroo.utils.Image", new CustomSerializer() {
+ @Override
+ protected String toString(Object value) {
+ return ((Image) value).toBase64();
}
@Override
protected String getType() {
- return "java.awt.image.BufferedImage";
+ return "be.nikiroo.utils.Image";
}
@Override
protected Object fromString(String content) {
try {
- return ImageUtils.fromBase64(content);
+ return new Image(content);
} catch (IOException e) {
throw new UnknownFormatConversionException(e.getMessage());
}
@@ -501,6 +522,6 @@ public class SerialUtils {
}
}
- return builder.substring(1, builder.length() - 1).toString();
+ return builder.substring(1, builder.length() - 1);
}
}