Added transform() method to TransformerObjectSupport.

This commit is contained in:
Arjen Poutsma
2007-06-12 15:19:06 +00:00
parent 6ebb764aba
commit ca739dc428
12 changed files with 40 additions and 55 deletions

View File

@@ -16,8 +16,11 @@
package org.springframework.xml.transform;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import org.apache.commons.logging.Log;
@@ -49,7 +52,7 @@ public abstract class TransformerObjectSupport {
}
/**
* Creates a new <code>Transformer</code>. Must be called per request, as transformer is not thread-safe.
* Creates a new <code>Transformer</code>. Must be called per request, as transformers are not thread-safe.
*
* @return the created transformer
* @throws TransformerConfigurationException
@@ -59,4 +62,17 @@ public abstract class TransformerObjectSupport {
return transformerFactory.newTransformer();
}
/**
* Transforms the given {@link Source} to the given {@link Result}. Creates a new {@link Transformer} for every
* call, as transformers are not thread-safe.
*
* @param source the source to transform from
* @param result the result to transform to
* @throws TransformerException if thrown by JAXP methods
*/
protected final void transform(Source source, Result result) throws TransformerException {
Transformer transformer = createTransformer();
transformer.transform(source, result);
}
}

View File

@@ -18,7 +18,6 @@ package org.springframework.xml.xpath;
import java.util.Properties;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMResult;
@@ -74,9 +73,8 @@ public abstract class AbstractXPathTemplate extends TransformerObjectSupport imp
* @return the root element
*/
protected Element getRootElement(Source source) throws TransformerException {
Transformer transformer = createTransformer();
DOMResult domResult = new DOMResult();
transformer.transform(source, domResult);
transform(source, domResult);
Document document = (Document) domResult.getNode();
return document.getDocumentElement();
}