X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fxml%2FXslTransformer.java;fp=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fxml%2FXslTransformer.java;h=0000000000000000000000000000000000000000;hb=2136b85d7bde33a277d1dfd58b048ee6e5f5db8b;hp=b3ab9eda04e516ca0afc4532dbe99826140db9ae;hpb=df850821cf26ca07ef2474d4d2cabb61e9104291;p=utils diff --git a/support/general/src/main/java/org/wamblee/xml/XslTransformer.java b/support/general/src/main/java/org/wamblee/xml/XslTransformer.java deleted file mode 100644 index b3ab9eda..00000000 --- a/support/general/src/main/java/org/wamblee/xml/XslTransformer.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright 2005-2010 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 org.w3c.dom.Document; - -import org.wamblee.io.FileResource; - -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; - -/** - * XSL transformer for simplified usage of XSL transformations. - * - * @author Erik Brakkee - */ -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); - } - } - 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); - } - } -}