X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=inline;f=src%2Fbe%2Fnikiroo%2Futils%2Fserial%2FExporter.java;h=2470bde4dace9f6dd0ca73f61373991a4cbd4283;hb=7194ac50b29064a013f177fc9cfc5aaa131a8ec4;hp=3a6e025739c9faf0893fa2a65f07970012ae8f0e;hpb=8a5c590389f5a6704300a583827ac7ee982a8d73;p=nikiroo-utils.git
diff --git a/src/be/nikiroo/utils/serial/Exporter.java b/src/be/nikiroo/utils/serial/Exporter.java
index 3a6e025..2470bde 100644
--- a/src/be/nikiroo/utils/serial/Exporter.java
+++ b/src/be/nikiroo/utils/serial/Exporter.java
@@ -1,11 +1,11 @@
package be.nikiroo.utils.serial;
+import java.io.IOException;
import java.io.NotSerializableException;
+import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
-import be.nikiroo.utils.StringUtils;
-
/**
* A simple class to serialise objects to {@link String}.
*
@@ -16,14 +16,22 @@ import be.nikiroo.utils.StringUtils;
*/
public class Exporter {
private Map map;
- private StringBuilder builder;
+ private OutputStream out;
/**
* Create a new {@link Exporter}.
+ *
+ * @param out
+ * export the data to this stream
*/
- public Exporter() {
+ public Exporter(OutputStream out) {
+ if (out == null) {
+ throw new NullPointerException(
+ "Cannot create an be.nikiroo.utils.serials.Exporter that will export to NULL");
+ }
+
+ this.out = out;
map = new HashMap();
- builder = new StringBuilder();
}
/**
@@ -41,51 +49,12 @@ public class Exporter {
* if the object cannot be serialised (in this case, the
* {@link Exporter} can contain bad, most probably not
* importable data)
+ * @throws IOException
+ * in case of I/O error
*/
- public Exporter append(Object o) throws NotSerializableException {
- SerialUtils.append(builder, o, map);
+ public Exporter append(Object o) throws NotSerializableException,
+ IOException {
+ SerialUtils.append(out, o, map);
return this;
}
-
- /**
- * Clear the current content.
- */
- public void clear() {
- builder.setLength(0);
- map.clear();
- }
-
- /**
- * The exported items in a serialised form.
- *
- * @param zip
- * TRUE to have zipped (and BASE64-coded) content, FALSE to have
- * raw content, NULL to let the system decide
- *
- * @return the items currently in this {@link Exporter}
- */
- public String toString(Boolean zip) {
- if (zip == null && builder.length() > 128) {
- zip = false;
- }
-
- if (zip == null || zip) {
- String zipped = "ZIP:" + StringUtils.zip64(builder.toString());
-
- if (zip != null || builder.length() < zipped.length())
- return zipped;
- }
-
- return builder.toString();
- }
-
- /**
- * The exported items in a serialised form (possibly zipped).
- *
- * @return the items currently in this {@link Exporter}
- */
- @Override
- public String toString() {
- return toString(null);
- }
}
\ No newline at end of file