git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into streamify
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
utils
/
serial
/
CustomSerializer.java
diff --git
a/src/be/nikiroo/utils/serial/CustomSerializer.java
b/src/be/nikiroo/utils/serial/CustomSerializer.java
index c5f79ff0331ae856596b4f2390b667d80245dbe4..80bac595a8a13068b1b45b10ece585c1566d5bb9 100644
(file)
--- a/
src/be/nikiroo/utils/serial/CustomSerializer.java
+++ b/
src/be/nikiroo/utils/serial/CustomSerializer.java
@@
-14,28
+14,29
@@
public abstract class CustomSerializer {
protected abstract String getType();
/**
protected abstract String getType();
/**
- * Encode the object into the given {@link OutputStream} if possible (if
- * supported).
+ * Encode the object into the given {@link OutputStream} if supported.
*
* @param out
* the builder to append to
* @param value
* the object to encode
*
*
* @param out
* the builder to append to
* @param value
* the object to encode
*
- * @return TRUE if success, FALSE if not (the content of the builder won't
- * be changed in case of failure)
+ * @return FALSE if the value is not supported, TRUE if the operation was
+ * successful (if the value is supported by the operation was not
+ * successful, you will get an {@link IOException})
*
* @throws IOException
* in case of I/O error
*/
public boolean encode(OutputStream out, Object value) throws IOException {
*
* @throws IOException
* in case of I/O error
*/
public boolean encode(OutputStream out, Object value) throws IOException {
- InputStream customString = toStream(out, value);
+ if (!isSupported(value)) {
+ return false;
+ }
+
SerialUtils.write(out, "custom^");
SerialUtils.write(out, getType());
SerialUtils.write(out, "^");
SerialUtils.write(out, "custom^");
SerialUtils.write(out, getType());
SerialUtils.write(out, "^");
- if (!SerialUtils.encode(out, customString)) {
- return false;
- }
+ toStream(out, value);
return true;
}
return true;
}