freemarker.template.instruction
Class ElseInstruction

java.lang.Object
  |
  +--freemarker.template.instruction.ElseInstruction
All Implemented Interfaces:
Instruction, java.io.Serializable, TemplateProcessor
Direct Known Subclasses:
IfInstruction

public class ElseInstruction
extends java.lang.Object
implements Instruction, TemplateProcessor, java.io.Serializable

An instruction representing an if-else structure. The "else" part of the structure will be executed if the condition expression evaluates to true value.

As a special case, any "else" structures are performed the same way as "if" structures, but with the test always returning true.

Unexpectedly, this is a superclass of the regular IfInstruction class.

Version:
$Id: ElseInstruction.java,v 1.8 2003/11/27 11:36:45 run2000 Exp $
See Also:
IfElseInstruction, IfInstruction, Serialized Form

Field Summary
protected  TemplateProcessor body
          The template body to process if the else clause is reached.
 
Fields inherited from interface freemarker.template.instruction.Instruction
BREAK, CASE, COMMENT_END, COMPRESS_END, DEFAULT, ELSE, ELSEIF, FOREACH_END, FUNCTION_END, IF_END, LIST_END, NONE, NOPARSE_END, SWITCH_END, TRANSFORM_END
 
Constructor Summary
ElseInstruction()
          Constructor to be used when evaluating the "else" part of the instruction.
 
Method Summary
 TemplateProcessor callBuilder(TemplateBuilder builder)
          A TemplateBuilder can call this method to have an Instruction call it back to be built.
 boolean conditionMatches(TemplateModelRoot modelRoot)
          Tests the condition for which this "else" statement should match.
 int getEndType()
          Determine what type of end instruction this is, if any.
 boolean isEndInstruction()
          Is this an end instruction?
 void process(TemplateModelRoot modelRoot, java.io.Writer out, TemplateRuntimeHandler eventHandler)
          Evaluate the <else> instruction.
 void setBody(TemplateProcessor body)
          Sets the body to be executed if the "if" expression is true.
 java.lang.String toString()
          Returns a string representation of the object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

body

protected TemplateProcessor body
The template body to process if the else clause is reached.
Constructor Detail

ElseInstruction

public ElseInstruction()
Constructor to be used when evaluating the "else" part of the instruction.
Method Detail

conditionMatches

public boolean conditionMatches(TemplateModelRoot modelRoot)
                         throws TemplateException
Tests the condition for which this "else" statement should match.
Returns:
the condition to be tested

setBody

public final void setBody(TemplateProcessor body)
Sets the body to be executed if the "if" expression is true.
Parameters:
body - a TemplateProcessor to be processed if the condition is true.

isEndInstruction

public final boolean isEndInstruction()
Is this an end instruction?
Specified by:
isEndInstruction in interface Instruction
Returns:
true, indicating that this is not an end instruction

getEndType

public int getEndType()
Determine what type of end instruction this is, if any.
Specified by:
getEndType in interface Instruction
Returns:
ELSE, indicating that this is an else instruction

callBuilder

public final TemplateProcessor callBuilder(TemplateBuilder builder)
A TemplateBuilder can call this method to have an Instruction call it back to be built. For end instructions, there is nothing more to be build, so return immediately.
Specified by:
callBuilder in interface Instruction
Parameters:
builder - the builder to be called back by this method

process

public final void process(TemplateModelRoot modelRoot,
                          java.io.Writer out,
                          TemplateRuntimeHandler eventHandler)
                   throws java.io.IOException
Evaluate the <else> instruction.
Specified by:
process in interface TemplateProcessor
Parameters:
modelRoot - the root node of the data model.
out - a Writer to send the output to.
eventHandler - a TemplateEventAdapter for handling any events that occur during processing.

toString

public java.lang.String toString()
Returns a string representation of the object.
Overrides:
toString in class java.lang.Object
Returns:
a String representing this instruction subtree