if (o instanceof Node)
return serialize((Node) o);
if (o instanceof Header[])
return serialize((Header[]) o);
ByteArrayOutputStream w = new ByteArrayOutputStream();
Base64OutputStream base64OutputStream = new Base64OutputStream(w);
ObjectOutputStream os = new ObjectOutputStream(base64OutputStream);
os.writeObject(o);
os.flush();
os.close();
base64OutputStream.flush();
base64OutputStream.close();
return w.toString("UTF-8");
}