-
- /**
- * Append the exported items in a serialised form into the given
- * {@link OutputStream}.
- *
- * @param out
- * the {@link OutputStream}
- * @param b64
- * TRUE to have BASE64-coded content, FALSE to have raw content,
- * NULL to let the system decide
- * @param zip
- * TRUE to zip the BASE64 output if the output is indeed in
- * BASE64 format, FALSE not to
- */
- public void appendTo(OutputStream out, Boolean b64, boolean zip) {
- if (b64 == null && out.length() < 128) {
- b64 = false;
- }
-
- if (b64 == null || b64) {
- try {
- String zipped = StringUtils.base64(out.toString(), zip);
- if (b64 != null || zipped.length() < out.length() - 4) {
- SerialUtils.write(out, zip ? "ZIP:" : "B64:");
- SerialUtils.write(out, zipped);
- return;
- }
- } catch (IOException e) {
- throw new RuntimeException(
- "Base64 conversion of data failed, maybe not enough memory?",
- e);
- }
- }
-
- out.append(out);
- }