Prefixed all abstract classes with Abstract
This commit is contained in:
@@ -84,6 +84,10 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe
|
||||
|
||||
private int indent = -1;
|
||||
|
||||
private String encoding;
|
||||
|
||||
private Boolean standalone;
|
||||
|
||||
/** Sets the optional binding name for this instance. */
|
||||
public void setBindingName(String bindingName) {
|
||||
this.bindingName = bindingName;
|
||||
@@ -99,6 +103,16 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe
|
||||
this.indent = indent;
|
||||
}
|
||||
|
||||
/** Sets the document encoding using for marshalling. Default is UTF-8. */
|
||||
public void setEncoding(String encoding) {
|
||||
this.encoding = encoding;
|
||||
}
|
||||
|
||||
/** Sets the document standalone flag for marshalling. By default, this flag is not present. */
|
||||
public void setStandalone(Boolean standalone) {
|
||||
this.standalone = standalone;
|
||||
}
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(targetClass, "targetClass is required");
|
||||
if (logger.isInfoEnabled()) {
|
||||
@@ -142,8 +156,50 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe
|
||||
return JibxUtils.convertJibxException(ex, marshalling);
|
||||
}
|
||||
|
||||
//
|
||||
// Supported Marshalling
|
||||
//
|
||||
|
||||
protected void marshalOutputStream(Object graph, OutputStream outputStream)
|
||||
throws XmlMappingException, IOException {
|
||||
try {
|
||||
IMarshallingContext marshallingContext = createMarshallingContext();
|
||||
marshallingContext.marshalDocument(graph, encoding, standalone, outputStream);
|
||||
}
|
||||
catch (JiBXException ex) {
|
||||
throw convertJibxException(ex, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException {
|
||||
try {
|
||||
IMarshallingContext marshallingContext = createMarshallingContext();
|
||||
marshallingContext.marshalDocument(graph, encoding, standalone, writer);
|
||||
}
|
||||
catch (JiBXException ex) {
|
||||
throw convertJibxException(ex, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException {
|
||||
try {
|
||||
MarshallingContext marshallingContext = (MarshallingContext) createMarshallingContext();
|
||||
IXMLWriter xmlWriter = new StAXWriter(marshallingContext.getNamespaces(), streamWriter);
|
||||
marshallingContext.setXmlWriter(xmlWriter);
|
||||
marshallingContext.marshalDocument(graph);
|
||||
}
|
||||
catch (JiBXException ex) {
|
||||
throw convertJibxException(ex, false);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Unsupported Marshalling
|
||||
//
|
||||
|
||||
protected void marshalDomNode(Object graph, Node node) throws XmlMappingException {
|
||||
try {
|
||||
// JiBX does not support DOM natively, so we write to a buffer first, and transform that to the Node
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||
marshalOutputStream(graph, os);
|
||||
ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
|
||||
@@ -158,25 +214,17 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe
|
||||
}
|
||||
}
|
||||
|
||||
protected void marshalOutputStream(Object graph, OutputStream outputStream)
|
||||
throws XmlMappingException, IOException {
|
||||
try {
|
||||
IMarshallingContext marshallingContext = createMarshallingContext();
|
||||
marshallingContext.marshalDocument(graph, null, null, outputStream);
|
||||
}
|
||||
catch (JiBXException ex) {
|
||||
throw convertJibxException(ex, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected void marshalSaxHandlers(Object graph, ContentHandler contentHandler, LexicalHandler lexicalHandler)
|
||||
throws XmlMappingException {
|
||||
try {
|
||||
// JiBX does not support SAX natively, so we write to a buffer first, and transform that to the handlers
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||
marshalOutputStream(graph, os);
|
||||
ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
|
||||
Transformer transformer = transfomerFactory.newTransformer();
|
||||
transformer.transform(new StreamSource(is), new SAXResult(contentHandler));
|
||||
SAXResult saxResult = new SAXResult(contentHandler);
|
||||
saxResult.setLexicalHandler(lexicalHandler);
|
||||
transformer.transform(new StreamSource(is), saxResult);
|
||||
}
|
||||
catch (IOException ex) {
|
||||
throw new JibxSystemException(ex);
|
||||
@@ -186,33 +234,14 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe
|
||||
}
|
||||
}
|
||||
|
||||
protected void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException {
|
||||
try {
|
||||
IMarshallingContext marshallingContext = createMarshallingContext();
|
||||
marshallingContext.marshalDocument(graph, null, null, writer);
|
||||
}
|
||||
catch (JiBXException ex) {
|
||||
throw convertJibxException(ex, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) {
|
||||
|
||||
ContentHandler contentHandler = new StaxEventContentHandler(eventWriter);
|
||||
marshalSaxHandlers(graph, contentHandler, null);
|
||||
}
|
||||
|
||||
protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException {
|
||||
try {
|
||||
MarshallingContext marshallingContext = (MarshallingContext) createMarshallingContext();
|
||||
IXMLWriter xmlWriter = new StAXWriter(marshallingContext.getNamespaces(), streamWriter);
|
||||
marshallingContext.setXmlWriter(xmlWriter);
|
||||
marshallingContext.marshalDocument(graph);
|
||||
}
|
||||
catch (JiBXException ex) {
|
||||
throw convertJibxException(ex, false);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Unmarshalling
|
||||
//
|
||||
|
||||
protected Object unmarshalDomNode(Node node) throws XmlMappingException {
|
||||
try {
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
|
||||
package org.springframework.oxm.jibx;
|
||||
|
||||
import org.custommonkey.xmlunit.XMLUnit;
|
||||
import org.springframework.oxm.AbstractMarshallerTestCase;
|
||||
import org.springframework.oxm.Marshaller;
|
||||
import org.springframework.xml.transform.StringResult;
|
||||
import org.custommonkey.xmlunit.XMLUnit;
|
||||
|
||||
public class JibxMarshallerTest extends AbstractMarshallerTestCase {
|
||||
|
||||
@@ -54,12 +54,18 @@ public class JibxMarshallerTest extends AbstractMarshallerTestCase {
|
||||
marshaller.marshal(flights, result);
|
||||
XMLUnit.setIgnoreWhitespace(false);
|
||||
String expected = "<?xml version=\"1.0\"?>\n" +
|
||||
"<flights xmlns=\"http://samples.springframework.org/flight\">\n" +
|
||||
" <flight>\n" +
|
||||
" <number>42</number>\n" +
|
||||
" </flight>\n" +
|
||||
"</flights>";
|
||||
"<flights xmlns=\"http://samples.springframework.org/flight\">\n" + " <flight>\n" +
|
||||
" <number>42</number>\n" + " </flight>\n" + "</flights>";
|
||||
assertXMLEqual(expected, result.toString());
|
||||
}
|
||||
|
||||
public void testEncodingAndStandalone() throws Exception {
|
||||
((JibxMarshaller) marshaller).setEncoding("ISO-8859-1");
|
||||
((JibxMarshaller) marshaller).setStandalone(Boolean.TRUE);
|
||||
StringResult result = new StringResult();
|
||||
marshaller.marshal(flights, result);
|
||||
assertTrue("Encoding and standalone not set",
|
||||
result.toString().startsWith("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user