Package org.apache.velocity.runtime.directive

# Class Define

java.lang.Object
org.apache.velocity.runtime.directive.Directive
org.apache.velocity.runtime.directive.Block
org.apache.velocity.runtime.directive.Define

All Implemented Interfaces:
  `Cloneable`, `DirectiveConstants`

public class Define extends Block
Directive that puts an unrendered AST block in the context under the specified key, postponing rendering until the reference is used and rendered.

Version:
  $Id: Define.java 686842 2008-08-18 18:29:31Z nbubna $
Author:
  Andrew Tetlaw, Nathan Bubna

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.velocity.runtime.directive.Block

`Block.Reference`

## Field Summary

### Fields inherited from class org.apache.velocity.runtime.directive.Block

`block, key, log, maxDepth`

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

`rsvc`

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

`BLOCK, LINE`

## Constructor Summary

Constructors
Constructor
Description
`Define()`

## Method Summary

Modifier and Type
Method
Description
`void`
`checkArgs(ArrayList<Integer> argtypes, Token t, String templateName)`
Called by the parser to validate the argument types
`String`
`getName()`
Return name of this directive.
`void`
`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
simple init - get the key
`boolean`
`render(InternalContextAdapter context, Writer writer, Node node)`
directive.render() simply makes an instance of the Block inner class and places it into the context as indicated.

### Methods inherited from class org.apache.velocity.runtime.directive.Block

`getType, id, render`

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

`getColumn, getLine, getScopeName, getTemplate, getTemplateName, isScopeProvided, makeScope, postRender, preRender, setLocation, setLocation`

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

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

## Constructor Details

### Define

public Define()

## Method Details

### getName

public String getName()
Return name of this directive.

Specified by:
  `getName` in class `Directive`
Returns:
  The name of this directive.

### init

public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException
simple init - get the key

Overrides:
  `init` in class `Block`
Parameters:
  `rs` -
  `context` -
  `node` -
Throws:
  `TemplateInitException`

### render

public boolean render(InternalContextAdapter context, Writer writer, Node node)
directive.render() simply makes an instance of the Block inner class and places it into the context as indicated.

Specified by:
  `render` in class `Directive`
Parameters:
  `context` -
  `writer` -
  `node` -
Returns:
  True if the directive rendered successfully.

### checkArgs

public void checkArgs(ArrayList<Integer> argtypes, Token t, String templateName) throws ParseException
Called by the parser to validate the argument types

Overrides:
  `checkArgs` in class `Directive`
Parameters:
  `argtypes` - type, Array of argument types of each argument to the directive for example StandardParserTreeConstants.JJTWORD
  `t` - token of directive
  `templateName` - the name of the template this directive is referenced in.
Throws:
  `ParseException`