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