You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by cu...@apache.org on 2001/06/25 16:35:33 UTC
cvs commit: xml-xalan/test/java/src/org/apache/qetest/xslwrapper TransformWrapper.java TraxDOMWrapper.java TraxFileWrapper.java TraxSAXWrapper.java TraxStreamWrapper.java TraxSystemIdWrapper.java TraxWrapperUtils.java
curcuru 01/06/25 07:35:33
Modified: test/java/src/org/apache/qetest/xslwrapper
TransformWrapper.java TraxDOMWrapper.java
TraxFileWrapper.java TraxSAXWrapper.java
TraxStreamWrapper.java TraxSystemIdWrapper.java
TraxWrapperUtils.java
Log:
Add support for calling setAttribute() on underlying TransformWrapper
Revision Changes Path
1.2 +11 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TransformWrapper.java
Index: TransformWrapper.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TransformWrapper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TransformWrapper.java 2001/03/16 16:59:44 1.1
+++ TransformWrapper.java 2001/06/25 14:35:20 1.2
@@ -84,7 +84,7 @@
* while updating to this new class.
*
* @author Shane Curcuru
- * @version $Id: TransformWrapper.java,v 1.1 2001/03/16 16:59:44 curcuru Exp $
+ * @version $Id: TransformWrapper.java,v 1.2 2001/06/25 14:35:20 curcuru Exp $
*/
public interface TransformWrapper
{
@@ -250,6 +250,16 @@
*/
public static final String ATTRIBUTE_DIAGNOSTICS =
"http://xml.apache.org/xalan/wrapper/diagnostics";
+
+
+ /**
+ * Marker for Attributes to set on Processors.
+ *
+ * Options that startWith() this constant will actually be
+ * attempted to be set onto our underlying processor/transformer.
+ */
+ public static final String SET_PROCESSOR_ATTRIBUTES =
+ "Processor.setAttribute.";
/**
1.3 +3 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxDOMWrapper.java
Index: TraxDOMWrapper.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxDOMWrapper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TraxDOMWrapper.java 2001/06/21 19:19:45 1.2
+++ TraxDOMWrapper.java 2001/06/25 14:35:21 1.3
@@ -97,7 +97,7 @@
* //@todo add in checks for factory.getFeature(DOMSource.FEATURE)
*
* @author Shane Curcuru
- * @version $Id: TraxDOMWrapper.java,v 1.2 2001/06/21 19:19:45 curcuru Exp $
+ * @version $Id: TraxDOMWrapper.java,v 1.3 2001/06/25 14:35:21 curcuru Exp $
*/
public class TraxDOMWrapper extends TransformWrapperHelper
{
@@ -178,6 +178,8 @@
{
throw new TransformerConfigurationException("TraxDOMWrapper.newProcessor: factory does not support DOM!");
}
+ // Set any of our options as Attributes on the factory
+ TraxWrapperUtils.setAttributes(factory, options);
return (Object)factory;
}
1.3 +3 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxFileWrapper.java
Index: TraxFileWrapper.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxFileWrapper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TraxFileWrapper.java 2001/06/21 19:19:46 1.2
+++ TraxFileWrapper.java 2001/06/25 14:35:22 1.3
@@ -83,7 +83,7 @@
* our getProcessorInfo() method.
*
* @author Shane Curcuru
- * @version $Id: TraxFileWrapper.java,v 1.2 2001/06/21 19:19:46 curcuru Exp $
+ * @version $Id: TraxFileWrapper.java,v 1.3 2001/06/25 14:35:22 curcuru Exp $
*/
public class TraxFileWrapper extends TransformWrapperHelper
{
@@ -164,6 +164,8 @@
{
throw new TransformerConfigurationException("TraxFileWrapper.newProcessor: factory does not support Streams!");
}
+ // Set any of our options as Attributes on the factory
+ TraxWrapperUtils.setAttributes(factory, options);
return (Object)factory;
}
1.3 +3 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxSAXWrapper.java
Index: TraxSAXWrapper.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxSAXWrapper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TraxSAXWrapper.java 2001/06/21 19:19:46 1.2
+++ TraxSAXWrapper.java 2001/06/25 14:35:23 1.3
@@ -99,7 +99,7 @@
* our getProcessorInfo() method.</p>
*
* @author Shane Curcuru
- * @version $Id: TraxSAXWrapper.java,v 1.2 2001/06/21 19:19:46 curcuru Exp $
+ * @version $Id: TraxSAXWrapper.java,v 1.3 2001/06/25 14:35:23 curcuru Exp $
*/
public class TraxSAXWrapper extends TransformWrapperHelper
{
@@ -184,6 +184,8 @@
{
throw new TransformerConfigurationException("TraxSAXWrapper.newProcessor: factory does not support SAX!");
}
+ // Set any of our options as Attributes on the factory
+ TraxWrapperUtils.setAttributes(factory, options);
saxFactory = (SAXTransformerFactory)factory;
return (Object)saxFactory;
}
1.2 +10 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxStreamWrapper.java
Index: TraxStreamWrapper.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxStreamWrapper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TraxStreamWrapper.java 2001/05/22 19:43:58 1.1
+++ TraxStreamWrapper.java 2001/06/25 14:35:24 1.2
@@ -60,6 +60,7 @@
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
@@ -94,7 +95,7 @@
* should be updated in several of our methods.</p>
*
* @author Shane Curcuru
- * @version $Id: TraxStreamWrapper.java,v 1.1 2001/05/22 19:43:58 curcuru Exp $
+ * @version $Id: TraxStreamWrapper.java,v 1.2 2001/06/25 14:35:24 curcuru Exp $
*/
public class TraxStreamWrapper extends TransformWrapperHelper
{
@@ -167,6 +168,14 @@
//@todo do we need to do any other cleanup?
reset(false);
factory = TransformerFactory.newInstance();
+ // Verify the factory supports Streams!
+ if (!(factory.getFeature(StreamSource.FEATURE)
+ && factory.getFeature(StreamResult.FEATURE)))
+ {
+ throw new TransformerConfigurationException("TraxStreamWrapper.newProcessor: factory does not support Streams!");
+ }
+ // Set any of our options as Attributes on the factory
+ TraxWrapperUtils.setAttributes(factory, options);
return (Object)factory;
}
1.2 +3 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxSystemIdWrapper.java
Index: TraxSystemIdWrapper.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxSystemIdWrapper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TraxSystemIdWrapper.java 2001/06/21 19:19:48 1.1
+++ TraxSystemIdWrapper.java 2001/06/25 14:35:25 1.2
@@ -82,7 +82,7 @@
* our getProcessorInfo() method.
*
* @author Shane Curcuru
- * @version $Id: TraxSystemIdWrapper.java,v 1.1 2001/06/21 19:19:48 curcuru Exp $
+ * @version $Id: TraxSystemIdWrapper.java,v 1.2 2001/06/25 14:35:25 curcuru Exp $
*/
public class TraxSystemIdWrapper extends TransformWrapperHelper
{
@@ -163,6 +163,8 @@
{
throw new TransformerConfigurationException("TraxSystemIdWrapper.newProcessor: factory does not support Streams!");
}
+ // Set any of our options as Attributes on the factory
+ TraxWrapperUtils.setAttributes(factory, options);
return (Object)factory;
}
1.2 +59 -1 xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxWrapperUtils.java
Index: TraxWrapperUtils.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xslwrapper/TraxWrapperUtils.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TraxWrapperUtils.java 2001/03/16 16:59:44 1.1
+++ TraxWrapperUtils.java 2001/06/25 14:35:26 1.2
@@ -56,14 +56,18 @@
*/
package org.apache.qetest.xslwrapper;
+import javax.xml.transform.TransformerFactory;
+
import java.lang.reflect.Field;
+import java.util.Enumeration;
+import java.util.Hashtable;
import java.util.Properties;
/**
* Cheap-o utilities for Trax*Wrapper implementations.
*
* @author Shane Curcuru
- * @version $Id: TraxWrapperUtils.java,v 1.1 2001/03/16 16:59:44 curcuru Exp $
+ * @version $Id: TraxWrapperUtils.java,v 1.2 2001/06/25 14:35:26 curcuru Exp $
*/
public abstract class TraxWrapperUtils
{
@@ -112,5 +116,59 @@
catch (Exception e2) { /* no-op, ignore */ }
return p;
+ }
+
+
+ /**
+ * Apply specific Attributes to a TransformerFactory.
+ *
+ * Filters on hashkeys.startsWith("Processor.setAttribute.")
+ * Exceptions thrown by underlying factory are ignored.
+ *
+ * @param factory TransformerFactory to call setAttributes on.
+ * @param attrs Hashtable of potential attributes to set.
+ */
+ public static void setAttributes(TransformerFactory factory,
+ Hashtable attrs)
+ throws IllegalArgumentException
+ {
+ if ((null == factory) || (null == attrs))
+ return;
+
+ Enumeration attrKeys = null;
+ try
+ {
+ attrKeys = ((Properties)attrs).propertyNames();
+ }
+ catch (ClassCastException cce)
+ {
+ // Simply get as Hashtable instead
+ attrKeys = attrs.keys();
+ }
+
+ while (attrKeys.hasMoreElements())
+ {
+ String key = (String) attrKeys.nextElement();
+ // Only attempt to set the attr if it matches our marker
+ if ((null != key)
+ && (key.startsWith(TransformWrapper.SET_PROCESSOR_ATTRIBUTES)))
+ {
+ // Strip off our marker for the property name
+ String processorKey = key.substring(TransformWrapper.SET_PROCESSOR_ATTRIBUTES.length());
+ Object value = null;
+ try
+ {
+ value = ((Properties)attrs).getProperty(key);
+ }
+ catch (ClassCastException cce)
+ {
+ // Simply get as Hashtable instead
+ value = attrs.get(key);
+ }
+ // Note: allow exceptions to propagate here
+ factory.setAttribute(processorKey, value);
+ }
+ }
+
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org