org.apache.velocity.runtime.directive

Class Macro

Implemented Interfaces:
Cloneable, DirectiveConstants

public class Macro
extends Directive

Macro.java Macro implements the macro definition directive of VTL. example : #macro( isnull $i ) #if( $i ) $i #end #end This object is used at parse time to mainly process and register the macro. It is used inline in the parser when processing a directive.

Version:
$Id: Macro.java,v 1.14 2001/11/07 12:59:50 geirm Exp $

Author:
Geir Magnusson Jr.

Nested Class Summary

Field Summary

private static boolean
debugMode

Fields inherited from class org.apache.velocity.runtime.directive.Directive

column, line, rsvc

Fields inherited from interface org.apache.velocity.runtime.directive.DirectiveConstants

BLOCK, LINE

Method Summary

private static List
getASTAsStringArray(Node rootNode)
Returns an array of the literal rep of the AST
private static String[]
getArgArray(Node node)
creates an array containing the literal strings in the macro arguement
String
getName()
Return name of this directive.
int
getType()
Return type of this directive.
void
init(RuntimeServices rs, InternalContextAdapter context, Node node)
static void
processAndRegister(RuntimeServices rs, Node node, String sourceTemplate)
Used by Parser.java to process VMs withing the parsing process processAndRegister() doesn't actually render the macro to the output Processes the macro body into the internal representation used by the VelocimacroProxy objects, and if not currently used, adds it to the macro Factory
boolean
render(InternalContextAdapter context, Writer writer, Node node)
render() doesn't do anything in the final output rendering.

Methods inherited from class org.apache.velocity.runtime.directive.Directive

getColumn, getLine, getName, getType, init, render, setLocation

Field Details

debugMode

private static boolean debugMode

Method Details

getASTAsStringArray

private static List getASTAsStringArray(Node rootNode)
Returns an array of the literal rep of the AST


getArgArray

private static String[] getArgArray(Node node)
creates an array containing the literal strings in the macro arguement


getName

public String getName()
Return name of this directive.
Overrides:
getName in interface Directive


getType

public int getType()
Return type of this directive.
Overrides:
getType in interface Directive


init

public void init(RuntimeServices rs,
                 InternalContextAdapter context,
                 Node node)
            throws Exception
Overrides:
init in interface Directive


processAndRegister

public static void processAndRegister(RuntimeServices rs,
                                      Node node,
                                      String sourceTemplate)
            throws IOException
Used by Parser.java to process VMs withing the parsing process processAndRegister() doesn't actually render the macro to the output Processes the macro body into the internal representation used by the VelocimacroProxy objects, and if not currently used, adds it to the macro Factory


render

public boolean render(InternalContextAdapter context,
                      Writer writer,
                      Node node)
            throws IOException
render() doesn't do anything in the final output rendering. There is no output from a #macro() directive.
Overrides:
render in interface Directive


Copyright © 2003 Apache Software Foundation. All Rights Reserved.