XMLSerializer.java

00001 
00025 package org.objectweb.jonas_lib.xml;
00026 
00027 import java.io.IOException;
00028 import java.io.OutputStream;
00029 import java.io.OutputStreamWriter;
00030 import java.io.Writer;
00031 
00032 import org.w3c.dom.Document;
00033 
00034 import org.apache.xml.serialize.DOMSerializer;
00035 import org.apache.xml.serialize.Method;
00036 import org.apache.xml.serialize.OutputFormat;
00037 import org.apache.xml.serialize.Serializer;
00038 import org.apache.xml.serialize.SerializerFactory;
00039 
00040 
00047 public class XMLSerializer {
00048 
00052     private static final int DEF_INDENT_SIZE = 4;
00053 
00057     private static final int DEF_LINE_WIDTH = 80;
00058 
00062     private static final String DEF_LINE_SEP = "\n";
00063 
00067     private Document doc;
00068 
00072     private OutputFormat format;
00073 
00077     private SerializerFactory factory;
00078 
00083     public XMLSerializer(Document doc) {
00084         this.doc = doc;
00085         // define the format for the xml document
00086         format = new OutputFormat();
00087         setIndent(DEF_INDENT_SIZE);
00088         setLineSeparator(DEF_LINE_SEP);
00089         setLineWidth(DEF_LINE_WIDTH);
00090 
00091         // document serialization and writing
00092         factory = SerializerFactory.getSerializerFactory(Method.XML);
00093     }
00094 
00099     public void setLineSeparator(String sep) {
00100         format.setLineSeparator(sep);
00101     }
00102 
00107     public void setLineWidth(int width) {
00108         format.setLineWidth(width);
00109     }
00110 
00115     public void setIndent(int indent) {
00116         format.setIndent(indent);
00117     }
00118 
00126     public void serialize(OutputStream os) throws IOException {
00127         serialize(new OutputStreamWriter(os));
00128     }
00129 
00137     public void serialize(Writer writer) throws IOException {
00138         Serializer genericSerializer = factory.makeSerializer(writer, format);
00139         DOMSerializer domSerializer = genericSerializer.asDOMSerializer();
00140 
00141         domSerializer.serialize(doc);
00142     }
00143 }

Generated on Tue Feb 15 15:05:56 2005 for JOnAS by  doxygen 1.3.9.1