X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fsrc%2Forg%2Fwamblee%2Fxml%2FXslTransformer.java;fp=support%2Fsrc%2Forg%2Fwamblee%2Fxml%2FXslTransformer.java;h=0000000000000000000000000000000000000000;hb=62f165891f08ae532b5a794af11d7338a93f9a43;hp=59a00fd09f5153aad0a4b7807a784c6693b22383;hpb=07cedd3f0730646ea35a7f668b3e1e872a4605d9;p=utils diff --git a/support/src/org/wamblee/xml/XslTransformer.java b/support/src/org/wamblee/xml/XslTransformer.java deleted file mode 100644 index 59a00fd0..00000000 --- a/support/src/org/wamblee/xml/XslTransformer.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 2005 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package org.wamblee.xml; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; - -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 javax.xml.transform.URIResolver; -import javax.xml.transform.dom.DOMResult; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; - -import org.w3c.dom.Document; -import org.wamblee.io.FileResource; - -/** - * XSL transformer for simplified usage of XSL transformations. - */ -public class XslTransformer { - - private TransformerFactory _factory; - - /** - * Constructs the URL resolver. - * - * @param aResolver - * URI resolver to use. - */ - public XslTransformer(URIResolver aResolver) { - _factory = TransformerFactory.newInstance(); - _factory.setURIResolver(aResolver); - } - - /** - * Constructs the XSLT processor. - * - */ - public XslTransformer() { - _factory = TransformerFactory.newInstance(); - } - - /** - * Resolves an XSLT based on URI. - * @param aXslt XSLT to resolve, - * @return Source for the XSLT - * @throws TransformerException In case the XSLT cannot be found. - */ - public Source resolve(String aXslt) throws TransformerException { - URIResolver resolver = _factory.getURIResolver(); - if (resolver == null) { - if (new File(aXslt).canRead()) { - try { - return new StreamSource(new FileResource(new File(aXslt)) - .getInputStream()); - } catch (IOException e) { - throw new TransformerException(e.getMessage(), e); - } - } else { - throw new TransformerException("Cannot read '" + aXslt + "'"); - } - } - return resolver.resolve(aXslt, ""); - } - - /** - * Transforms a DOM document into another DOM document using a given XSLT - * transformation. - * - * @param aDocument - * Document to transform. - * @param aXslt - * XSLT to use. - * @return Transformed document. - * @throws IOException - * In case of problems reading resources. - * @throws TransformerException - * In case transformation fails. - */ - public Document transform(Document aDocument, Source aXslt) - throws IOException, TransformerException { - Source source = new DOMSource(aDocument); - DOMResult result = new DOMResult(); - transform(source, result, aXslt); - return (Document) result.getNode(); - } - - /** - * Transforms a document using XSLT. - * - * @param aDocument - * Document to transform. - * @param aXslt - * XSLT to use. - * @return Transformed document. - * @throws IOException - * In case of problems reading resources. - * @throws TransformerException - * In case transformation fails. - */ - public Document transform(byte[] aDocument, Source aXslt) - throws IOException, TransformerException { - Source source = new StreamSource(new ByteArrayInputStream(aDocument)); - DOMResult result = new DOMResult(); - transform(source, result, aXslt); - return (Document) result.getNode(); - } - - /** - * Transforms a document to a text output. This supports XSLT - * transformations that result in text documents. - * - * @param aDocument - * Document to transform. - * @param aXslt - * XSL transformation. - * @return Transformed document. - */ - public String textTransform(byte[] aDocument, Source aXslt) - throws IOException, TransformerException { - Source source = new StreamSource(new ByteArrayInputStream(aDocument)); - ByteArrayOutputStream os = new ByteArrayOutputStream(); - StreamResult result = new StreamResult(os); - transform(source, result, aXslt); - return new String(os.toByteArray()); - } - - /** - * Transforms a document using XSLT. - * - * @param aSource - * Document to transform. - * @param aResult - * Result of the transformation. - * @param aXslt - * XSLT to use. - * @throws IOException - * In case of problems reading resources. - * @throws TransformerException - * In case transformation fails. - */ - public void transform(Source aSource, Result aResult, Source aXslt) - throws IOException, TransformerException { - try { - Transformer transformer = _factory.newTransformer(aXslt); - transformer.transform(aSource, aResult); - } catch (TransformerConfigurationException e) { - throw new TransformerException( - "Configuration problem of XSLT transformation", e); - } - } -}