From: <bo...@us...> - 2010-05-17 15:46:43
|
Revision: 388 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=388&view=rev Author: bodewig Date: 2010-05-17 15:46:34 +0000 (Mon, 17 May 2010) Log Message: ----------- extract reusable code from Input-by-XSLT Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java Added Paths: ----------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/TransformHelper.java Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2010-05-17 15:26:06 UTC (rev 387) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2010-05-17 15:46:34 UTC (rev 388) @@ -23,17 +23,12 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; import javax.xml.transform.Source; -import javax.xml.transform.Transformer; 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.StreamSource; -import net.sf.xmlunit.exceptions.ConfigurationException; import net.sf.xmlunit.exceptions.XMLUnitException; import org.w3c.dom.Document; import org.w3c.dom.Node; @@ -170,18 +165,13 @@ } private static class Transformation implements TransformationBuilder { - private final Source source; - private Source styleSheet; - private TransformerFactory factory; - private URIResolver uriResolver; - private final Properties output = new Properties(); - private final Map<String, Object> params = new HashMap<String, Object>(); + private final TransformHelper helper; private Transformation(Source s) { - source = s; + helper = new TransformHelper(s); } public TransformationBuilder withStylesheet(Source s) { - styleSheet = s; + helper.setStylesheet(s); return this; } public TransformationBuilder withStylesheet(Builder b) { @@ -189,52 +179,29 @@ } public TransformationBuilder withOutputProperty(String name, String value) { - output.setProperty(name, value); + helper.setOutputProperty(name, value); return this; } public TransformationBuilder withParameter(String name, Object value) { - params.put(name, value); + helper.setParameter(name, value); return this; } public TransformationBuilder usingFactory(TransformerFactory f) { - factory = f; + helper.setFactory(f); return this; } public TransformationBuilder withUriResolver(URIResolver r) { - uriResolver = r; + helper.setUriResolver(r); return this; } public Source build() { - try { - DOMResult r = new DOMResult(); - TransformerFactory fac = factory; - if (fac == null) { - fac = TransformerFactory.newInstance(); - } - Transformer t = null; - if (styleSheet != null) { - t = fac.newTransformer(styleSheet); - } else { - t = fac.newTransformer(); - } - if (uriResolver != null) { - t.setURIResolver(uriResolver); - } - t.setOutputProperties(output); - for (Map.Entry<String, Object> ent : params.entrySet()) { - t.setParameter(ent.getKey(), ent.getValue()); - } - t.transform(source, r); - return new DOMSource(r.getNode()); - } catch (javax.xml.transform.TransformerConfigurationException e) { - throw new ConfigurationException(e); - } catch (javax.xml.transform.TransformerException e) { - throw new XMLUnitException(e); - } + DOMResult r = new DOMResult(); + helper.transformTo(r); + return new DOMSource(r.getNode()); } } Added: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/TransformHelper.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/TransformHelper.java (rev 0) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/TransformHelper.java 2010-05-17 15:46:34 UTC (rev 388) @@ -0,0 +1,78 @@ +/* + This file is licensed to You 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 net.sf.xmlunit.builder; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.URIResolver; +import net.sf.xmlunit.exceptions.ConfigurationException; +import net.sf.xmlunit.exceptions.XMLUnitException; + +class TransformHelper { + private final Source source; + private Source styleSheet; + private TransformerFactory factory; + private URIResolver uriResolver; + private final Properties output = new Properties(); + private final Map<String, Object> params = new HashMap<String, Object>(); + TransformHelper(Source s) { + source = s; + } + void setStylesheet(Source s) { + styleSheet = s; + } + void setOutputProperty(String name, String value) { + output.setProperty(name, value); + } + void setParameter(String name, Object value) { + params.put(name, value); + } + void setFactory(TransformerFactory f) { + factory = f; + } + void setUriResolver(URIResolver r) { + uriResolver = r; + } + void transformTo(Result r) { + try { + TransformerFactory fac = factory; + if (fac == null) { + fac = TransformerFactory.newInstance(); + } + Transformer t = null; + if (styleSheet != null) { + t = fac.newTransformer(styleSheet); + } else { + t = fac.newTransformer(); + } + if (uriResolver != null) { + t.setURIResolver(uriResolver); + } + t.setOutputProperties(output); + for (Map.Entry<String, Object> ent : params.entrySet()) { + t.setParameter(ent.getKey(), ent.getValue()); + } + t.transform(source, r); + } catch (javax.xml.transform.TransformerConfigurationException e) { + throw new ConfigurationException(e); + } catch (javax.xml.transform.TransformerException e) { + throw new XMLUnitException(e); + } + } +} \ No newline at end of file Property changes on: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/TransformHelper.java ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |