Package org.apache.velocity.runtime.directive

# Class Block

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

All Implemented Interfaces:
  `Cloneable`, `DirectiveConstants`

Direct Known Subclasses:
  `BlockMacro`, `Define`

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

Since:
  1.7
Version:
  $Id: Block.java 686842 2008-08-18 18:29:31Z nbubna $
Author:
  Andrew Tetlaw, Nathan Bubna, Jarkko Viinamaki

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`Block.Reference`
actual class placed in the context, holds the context being used for the render, as well as the parent (which already holds everything else we need).

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Node`
`block`
`protected String`
`key`
`protected org.slf4j.Logger`
`log`
`protected int`
`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
`Block()`

## Method Summary

Modifier and Type
Method
Description
`int`
`getType()`
Return type of this directive.
`protected String`
`id(InternalContextAdapter context)`
Creates a string identifying the source and location of the block definition, and the current template being rendered if that is different.
`void`
`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
simple init - get the key
`boolean`
`render(InternalContextAdapter context, Writer writer)`
renders block directive

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

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

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

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

## Field Details

### block

protected Node block

### log

protected org.slf4j.Logger log

### maxDepth

protected int maxDepth

### key

protected String key

## Constructor Details

### Block

public Block()

## Method Details

### getType

public int getType()
Return type of this directive.

Specified by:
  `getType` in class `Directive`
Returns:
  type, DirectiveConstants.BLOCK or DirectiveConstants.LINE

### init

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

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

### render

public boolean render(InternalContextAdapter context, Writer writer)
renders block directive

Parameters:
  `context` -
  `writer` -
Returns:
  success status

### id

protected String id(InternalContextAdapter context)
Creates a string identifying the source and location of the block definition, and the current template being rendered if that is different.

Parameters:
  `context` -
Returns:
  id string