Package org.apache.velocity.runtime.parser.node

# Class ASTDirective

java.lang.Object
org.apache.velocity.runtime.parser.node.SimpleNode
org.apache.velocity.runtime.parser.node.ASTDirective

All Implemented Interfaces:
  `Cloneable`, `Node`, `Renderable`

public class ASTDirective extends SimpleNode
This class is responsible for handling the pluggable directives in VTL. For example : #foreach() Please look at the Parser.jjt file which is what controls the generation of this class.

Version:
  $Id$
Author:
  Jason van Zyl, Geir Magnusson Jr., Kasper Nielsen

## Field Summary

### Fields inherited from class org.apache.velocity.runtime.parser.node.SimpleNode

`children, column, first, firstImage, id, info, invalid, last, lastImage, line, literal, log, parent, parser, rsvc, state, template`

## Constructor Summary

Constructors
Constructor
Description
`ASTDirective(int id)`
`ASTDirective(Parser p, int id)`

## Method Summary

Modifier and Type
Method
Description
`String`
`getDirectiveName()`
Gets the name of this directive.
`int`
`getDirectiveType()`
`String`
`getMorePrefix()`
more prefix getter
`String`
`getPostfix()`
get indentation postfix
`String`
`getPrefix()`
get indentation prefix
`Object`
`init(InternalContextAdapter context, Object data)`
`Object`
`jjtAccept(StandardParserVisitor visitor, Object data)`
`String`
`literal()`
Returns the string "#directive_name(...)".
`boolean`
`render(InternalContextAdapter context, Writer writer)`
`void`
`setDirectiveName(String str)`
Sets the directive name.
`void`
`setPostfix(String postfix)`
set indentation postfix
`void`
`setPrefix(String prefix)`
set indentation prefix
`String`
`toString()`

### Methods inherited from class org.apache.velocity.runtime.parser.node.SimpleNode

`childrenAccept, cleanupParserAndTokens, clone, clone, dump, dump, dump, evaluate, execute, getColumn, getFirstToken, getFirstTokenImage, getInfo, getLastToken, getLastTokenImage, getLine, getLocation, getParser, getRuntimeServices, getTemplate, getTemplateName, getType, isInvalid, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, saveTokenImages, setFirstToken, setInfo, setInvalid, toString, value`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### ASTDirective

public ASTDirective(int id)

Parameters:
  `id` -

### ASTDirective

public ASTDirective(Parser p, int id)

Parameters:
  `p` -
  `id` -

## Method Details

### jjtAccept

public Object jjtAccept(StandardParserVisitor visitor, Object data)

Specified by:
  `jjtAccept` in interface `Node`
Overrides:
  `jjtAccept` in class `SimpleNode`
Parameters:
  `visitor` -
  `data` -
Returns:
  The Node execution result object.
See Also:
  - `SimpleNode.jjtAccept(org.apache.velocity.runtime.parser.node.StandardParserVisitor, java.lang.Object)`

### init

public Object init(InternalContextAdapter context, Object data) throws TemplateInitException

Specified by:
  `init` in interface `Node`
Overrides:
  `init` in class `SimpleNode`
Parameters:
  `context` -
  `data` -
Returns:
  The init result.
Throws:
  `TemplateInitException`
See Also:
  - `SimpleNode.init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)`

### setPrefix

public void setPrefix(String prefix)
set indentation prefix

Parameters:
  `prefix` -

### getPrefix

public String getPrefix()
get indentation prefix

Returns:
  indentation prefix

### setPostfix

public void setPostfix(String postfix)
set indentation postfix

Parameters:
  `postfix` -

### getPostfix

public String getPostfix()
get indentation postfix

Returns:
  indentation prefix

### getMorePrefix

public String getMorePrefix()
more prefix getter

Returns:
  more prefix

### getDirectiveType

public int getDirectiveType()

### render

public boolean render(InternalContextAdapter context, Writer writer) throws IOException, MethodInvocationException, ResourceNotFoundException, ParseErrorException

Specified by:
  `render` in interface `Node`
Specified by:
  `render` in interface `Renderable`
Overrides:
  `render` in class `SimpleNode`
Parameters:
  `context` -
  `writer` -
Returns:
  True if the node rendered successfully.
Throws:
  `IOException`
  `MethodInvocationException`
  `ResourceNotFoundException`
  `ParseErrorException`
See Also:
  - `SimpleNode.render(org.apache.velocity.context.InternalContextAdapter, java.io.Writer)`

### setDirectiveName

public void setDirectiveName(String str)
Sets the directive name. Used by the parser. This keeps us from having to dig it out of the token stream and gives the parse the change to override.

Parameters:
  `str` -

### getDirectiveName

public String getDirectiveName()
Gets the name of this directive.

Returns:
  The name of this directive.

### toString

public String toString()

Overrides:
  `toString` in class `SimpleNode`

### literal

public String literal()
Returns the string "#directive_name(...)". Arguments literals are not rendered. This method is only used for displaying the VTL stacktrace when a rendering error is encountered when runtime.log.track_location is true.

Specified by:
  `literal` in interface `Node`
Overrides:
  `literal` in class `SimpleNode`
Returns:
See Also:
  - `Node.literal()`