X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fserial%2FSerialUtils.java;h=3308a756c578bd14c3f5bc758cd31e30164afcaa;hb=805005449dacb1e7b825db63836bf100e472ddd0;hp=decf57525fb30336ab00dee5be5bb2952d5f8196;hpb=452f38c8b9e98215f4ed6def6f3f8fd5dfa75daa;p=fanfix.git diff --git a/src/be/nikiroo/utils/serial/SerialUtils.java b/src/be/nikiroo/utils/serial/SerialUtils.java index decf575..3308a75 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()); }