Hello velocitians,

I experimentize a little with ParserVisitors on AST and I think the following 
patch is usefull:

it allows processing the AST nodes with a visitor, until now:

        template.merge( context, writer );

now:

        template.merge( context, writer );
and
        template.merge( context, visitor );

are avaible. I think this is a trivial change, but it is usefull ...  

Christian


Index: Template.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-velocity/src/java/org/apache/velocity/Template.java,v
retrieving revision 1.35
diff -r1.35 Template.java
66a67
> import org.apache.velocity.runtime.parser.node.ParserVisitor;
261a263
>      *  @param parser visitor for rendering template
268c270
<     public void merge( Context context, Writer writer)
---
>     public void merge( Context context, Writer writer, ParserVisitor 
visitor)
296c298,312
<                 ( (SimpleNode) data ).render( ica, writer);
---
>              if ( visitor == null )
>              {
>                        /*
>                        *  standard template rendering
>                        */
>                       ( (SimpleNode) data ).render( ica, writer);
>              }
>              else
>              {
>                        /*
>                        *  render template with a visitor
>                        */
>                       visitor.visit( (SimpleNode) data, data);
>              }
>              
318a335,376
>     }
>     
>    /**
>      * The AST node structure is merged with the
>      * context to produce the final output. 
>      *
>      * Throws IOException if failure is due to a file related
>      * issue, and Exception otherwise
>      *
>      *  @param context Conext with data elements accessed by template
>      *  @param writer output writer for rendered template
>      *  @throws ResourceNotFoundException if template not found
>      *          from any available source.
>      *  @throws ParseErrorException if template cannot be parsed due
>      *          to syntax (or other) error.
>      *  @throws  Exception  anything else. 
>      */
>     public void merge( Context context, Writer writer)
>         throws ResourceNotFoundException, ParseErrorException, 
MethodInvocationException, Exception
>     {
>           merge( context, writer, null);
>     }
>     
>     /**
>      * The AST node structure is merged with the
>      * context to produce the final output. 
>      *
>      * Throws IOException if failure is due to a file related
>      * issue, and Exception otherwise
>      *
>      *  @param context Conext with data elements accessed by template
>      *  @param parser visitor for rendering template
>      *  @throws ResourceNotFoundException if template not found
>      *          from any available source.
>      *  @throws ParseErrorException if template cannot be parsed due
>      *          to syntax (or other) error.
>      *  @throws  Exception  anything else. 
>      */
>     public void merge( Context context, ParserVisitor visitor)
>         throws ResourceNotFoundException, ParseErrorException, 
MethodInvocationException, Exception
>     {
>           merge( context, null, visitor);

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

Reply via email to