X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fserial%2FCustomSerializer.java;h=80bac595a8a13068b1b45b10ece585c1566d5bb9;hb=ecd81c088d8df94c47c85399afdab87bbd39afaf;hp=c5f79ff0331ae856596b4f2390b667d80245dbe4;hpb=68532958426cd3c6187aa89eae4f137bc057293b;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/serial/CustomSerializer.java b/src/be/nikiroo/utils/serial/CustomSerializer.java index c5f79ff..80bac59 100644 --- 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(); /** - * 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 * - * @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 { - InputStream customString = toStream(out, value); + if (!isSupported(value)) { + return false; + } + SerialUtils.write(out, "custom^"); SerialUtils.write(out, getType()); SerialUtils.write(out, "^"); - if (!SerialUtils.encode(out, customString)) { - return false; - } + toStream(out, value); return true; }