use of com.sun.xml.bind.marshaller.XMLWriter in project OpenAM by OpenRock.
the class MarshallerImpl method createWriter.
public XMLWriter createWriter(Writer w, String encoding) throws JAXBException {
// buffering improves the performance
w = new BufferedWriter(w);
CharacterEscapeHandler ceh = createEscapeHandler(encoding);
XMLWriter xw;
if (isFormattedOutput()) {
DataWriter d = new DataWriter(w, encoding, ceh);
d.setIndentStep(indent);
xw = d;
} else
xw = new XMLWriter(w, encoding, ceh);
xw.setXmlDecl(printXmlDeclaration);
xw.setHeader(header);
return xw;
}
use of com.sun.xml.bind.marshaller.XMLWriter in project OpenAM by OpenRock.
the class MarshallerImpl method marshal.
public void marshal(Object obj, Result result) throws JAXBException {
//XMLSerializable so = Util.toXMLSerializable(obj);
XMLSerializable so = context.getGrammarInfo().castToXMLSerializable(obj);
if (so == null)
throw new MarshalException(Messages.format(Messages.NOT_MARSHALLABLE));
if (result instanceof SAXResult) {
write(so, ((SAXResult) result).getHandler());
return;
}
if (result instanceof DOMResult) {
Node node = ((DOMResult) result).getNode();
if (node == null) {
try {
DocumentBuilder db = XMLUtils.getSafeDocumentBuilder(false);
Document doc = db.newDocument();
((DOMResult) result).setNode(doc);
write(so, new SAX2DOMEx(doc));
} catch (ParserConfigurationException pce) {
throw new JAXBAssertionError(pce);
}
} else {
write(so, new SAX2DOMEx(node));
}
return;
}
if (result instanceof StreamResult) {
StreamResult sr = (StreamResult) result;
XMLWriter w = null;
if (sr.getWriter() != null)
w = createWriter(sr.getWriter());
else if (sr.getOutputStream() != null)
w = createWriter(sr.getOutputStream());
else if (sr.getSystemId() != null) {
String fileURL = sr.getSystemId();
if (fileURL.startsWith("file:///")) {
if (fileURL.substring(8).indexOf(":") > 0)
fileURL = fileURL.substring(8);
else
fileURL = fileURL.substring(7);
}
try {
w = createWriter(new FileOutputStream(fileURL));
} catch (IOException e) {
throw new MarshalException(e);
}
}
if (w == null)
throw new IllegalArgumentException();
write(so, w);
return;
}
// unsupported parameter type
throw new MarshalException(Messages.format(Messages.UNSUPPORTED_RESULT));
}
use of com.sun.xml.bind.marshaller.XMLWriter in project OpenAM by OpenRock.
the class MarshallerImpl method createWriter.
public XMLWriter createWriter(Writer w, String encoding) throws JAXBException {
// buffering improves the performance
w = new BufferedWriter(w);
CharacterEscapeHandler ceh = createEscapeHandler(encoding);
XMLWriter xw;
if (isFormattedOutput()) {
DataWriter d = new DataWriter(w, encoding, ceh);
d.setIndentStep(indent);
xw = d;
} else
xw = new XMLWriter(w, encoding, ceh);
xw.setXmlDecl(printXmlDeclaration);
xw.setHeader(header);
return xw;
}
Aggregations