geirm       02/01/10 06:02:26

  Modified:    src/java/org/apache/tools/dvsl DVSL.java Transformer.java
  Log:
  Added option to transform a dom4j Document.  Suggested by
  Jeff Schnitzer <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.3       +22 -0     jakarta-velocity-dvsl/src/java/org/apache/tools/dvsl/DVSL.java
  
  Index: DVSL.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity-dvsl/src/java/org/apache/tools/dvsl/DVSL.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DVSL.java 5 Jan 2002 13:33:01 -0000       1.2
  +++ DVSL.java 10 Jan 2002 14:02:26 -0000      1.3
  @@ -342,6 +342,16 @@
           return transformer.transform( reader, writer );
       }
   
  +    protected long xform( Document dom4jdoc, Writer writer )
  +        throws Exception
  +    {
  +        if (!ready)
  +            makeReady();
  +
  +        return transformer.transform( dom4jdoc, writer );
  +    }
  +
  +
       public long transform( File f, Writer writer )
           throws Exception
       {
  @@ -375,6 +385,18 @@
           throws Exception
       {
           return xform( new InputStreamReader(is), writer );
  +    }
  +
  +    /**
  +     * Transforms the given dom4j Document into the writer.
  +     *
  +     * @param dom4jdoc dom4j Document object
  +     * @param writer Writer for output
  +     */
  +    public long transform( Document dom4jdoc, Writer writer )
  +        throws Exception
  +    {
  +        return xform( dom4jdoc, writer );
       }
   
       public long transform( String infile, Writer writer )
  
  
  
  1.2       +25 -12    
jakarta-velocity-dvsl/src/java/org/apache/tools/dvsl/Transformer.java
  
  Index: Transformer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity-dvsl/src/java/org/apache/tools/dvsl/Transformer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Transformer.java  18 Dec 2001 21:23:15 -0000      1.1
  +++ Transformer.java  10 Jan 2002 14:02:26 -0000      1.2
  @@ -135,7 +135,7 @@
       }
   
       /**
  -     *  Routine that performs the transformation on
  +     *  Method that performs the transformation on
        *  a document
        *
        *  @param reader XML document char stream
  @@ -144,27 +144,40 @@
       long transform( Reader reader, Writer writer )
           throws Exception
       {
  -        /*
  -         *  wrap in a context to keep subsequent documents from
  -         *  interacting with each other
  -         */
  -        
  -        currentContext = new DVSLNodeContext( baseContext );
  -
  -        long start = System.currentTimeMillis();
   
           /*
            *  parse the document
            */
           Document document = saxReader.read( reader );
  -        
  +
  +        return transform( document, writer );
  +    }
  +
  +    long transform( Document dom4jdoc, Writer writer )
  +        throws Exception
  +    {
           /*
            *  wrap the document.  We do this as we let the dom4j package
  -         *  decide if we have a match against "/", so we need document 
  +         *  decide if we have a match against "/", so we need document
            *  to do that
            */
   
  -        DVSLNode root = new Dom4jNodeImpl( document);
  +        DVSLNode root = new Dom4jNodeImpl( dom4jdoc );
  +
  +        return transform( root, writer );
  +    }
  +
  +    protected long transform( DVSLNode root, Writer writer)
  +        throws Exception
  +    {
  +        /*
  +          *  wrap in a context to keep subsequent documents from
  +          *  interacting with each other
  +          */
  +
  +         currentContext = new DVSLNodeContext( baseContext );
  +
  +         long start = System.currentTimeMillis();
   
           /*
            *  push 'this' into the context as our TransformTool
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to