org.apache.velocity.runtime.directive
Class Directive

java.lang.Object
  extended by org.apache.velocity.runtime.directive.Directive
All Implemented Interfaces:
Cloneable, DirectiveConstants
Direct Known Subclasses:
Block, Break, Evaluate, Foreach, InputBase, Literal, Macro, RuntimeMacro, Stop, VelocimacroProxy

public abstract class Directive
extends Object
implements DirectiveConstants, Cloneable

Base class for all directives used in Velocity.

Version:
$Id: Directive.java 778045 2009-05-23 22:17:46Z nbubna $
Author:
Jason van Zyl, Nathan Bubna

Field Summary
protected  RuntimeServices rsvc
           
 
Fields inherited from interface org.apache.velocity.runtime.directive.DirectiveConstants
BLOCK, LINE
 
Constructor Summary
Directive()
           
 
Method Summary
 int getColumn()
          for log msg purposes
 int getLine()
          for log msg purposes
abstract  String getName()
          Return the name of this directive.
 String getScopeName()
           
 String getTemplateName()
           
abstract  int getType()
          Get the directive type BLOCK/LINE.
 void init(RuntimeServices rs, InternalContextAdapter context, Node node)
          How this directive is to be initialized.
 boolean isScopeProvided()
           
protected  Scope makeScope(Object prev)
           
protected  void postRender(InternalContextAdapter context)
          This cleans up any scope control for this directive after rendering, assuming the scope control was turned on.
protected  void preRender(InternalContextAdapter context)
          This creates and places the scope control for this directive into the context (if scope provision is turned on).
abstract  boolean render(InternalContextAdapter context, Writer writer, Node node)
          How this directive is to be rendered
 void setLocation(int line, int column)
          Allows the template location to be set.
 void setLocation(int line, int column, String templateName)
          Allows the template location to be set.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rsvc

protected RuntimeServices rsvc
Constructor Detail

Directive

public Directive()
Method Detail

getName

public abstract String getName()
Return the name of this directive.

Returns:
The name of this directive.

getType

public abstract int getType()
Get the directive type BLOCK/LINE.

Returns:
The directive type BLOCK/LINE.

setLocation

public void setLocation(int line,
                        int column)
Allows the template location to be set.

Parameters:
line -
column -

setLocation

public void setLocation(int line,
                        int column,
                        String templateName)
Allows the template location to be set.

Parameters:
line -
column -

getLine

public int getLine()
for log msg purposes

Returns:
The current line for log msg purposes.

getColumn

public int getColumn()
for log msg purposes

Returns:
The current column for log msg purposes.

getTemplateName

public String getTemplateName()
Returns:
The template file name this directive was defined in, or null if not defined in a file.

getScopeName

public String getScopeName()

isScopeProvided

public boolean isScopeProvided()
Returns:
true if there will be a scope control injected into the context when rendering this directive.

init

public void init(RuntimeServices rs,
                 InternalContextAdapter context,
                 Node node)
          throws TemplateInitException
How this directive is to be initialized.

Parameters:
rs -
context -
node -
Throws:
TemplateInitException

render

public abstract boolean render(InternalContextAdapter context,
                               Writer writer,
                               Node node)
                        throws IOException,
                               ResourceNotFoundException,
                               ParseErrorException,
                               MethodInvocationException
How this directive is to be rendered

Parameters:
context -
writer -
node -
Returns:
True if the directive rendered successfully.
Throws:
IOException
ResourceNotFoundException
ParseErrorException
MethodInvocationException

preRender

protected void preRender(InternalContextAdapter context)
This creates and places the scope control for this directive into the context (if scope provision is turned on).


makeScope

protected Scope makeScope(Object prev)

postRender

protected void postRender(InternalContextAdapter context)
This cleans up any scope control for this directive after rendering, assuming the scope control was turned on.



Copyright © 2000-2010 The Apache Software Foundation. All Rights Reserved.