net.sf.joost.instruction
Class IfFactory.Instance

java.lang.Object
  extended by net.sf.joost.instruction.AbstractInstruction
      extended by net.sf.joost.instruction.NodeBase
          extended by net.sf.joost.instruction.IfFactory.Instance
All Implemented Interfaces:
Cloneable, Constants
Enclosing class:
IfFactory

public final class IfFactory.Instance
extends NodeBase

Represents an instance of the if element.


Nested Class Summary
 
Nested classes/interfaces inherited from class net.sf.joost.instruction.NodeBase
NodeBase.End
 
Field Summary
private  AbstractInstruction falseNext
          next instruction if the test evaluates to false
private  Tree test
          the parsed select expression
private  AbstractInstruction trueNext
          next instruction if the test evaluates to true
 
Fields inherited from class net.sf.joost.instruction.NodeBase
lastChild, localFieldStack, nodeEnd, parent, preserveSpace, publicId, qName, scopedVariables, systemId
 
Fields inherited from class net.sf.joost.instruction.AbstractInstruction
colNo, lineNo, next
 
Fields inherited from interface net.sf.joost.Constants
DEBUG, DEFAULT_ENCODING, FEAT_NS, FEAT_NSPREFIX, FEATURE_URI_PREFIX, FUNC_NS, JOOST_EXT_NS, PR_ATTRIBUTES, PR_BUFFER, PR_CHILDREN, PR_CONTINUE, PR_ERROR, PR_SELF, PR_SIBLINGS, STX_NS
 
Constructor Summary
protected IfFactory.Instance(String qName, NodeBase parent, ParseContext context, Tree test)
           
 
Method Summary
 boolean compile(int pass, ParseContext context)
          Assign trueNext and falseNext
protected  void onDeepCopy(AbstractInstruction copy, HashMap copies)
          Callback that will be called when a clone of this instance has been created.
 short process(Context context)
          Evaluates the expression given in the test attribute and change the value of the next instruction.
 String toString()
           
 
Methods inherited from class net.sf.joost.instruction.NodeBase
declareVariable, getNode, getNodeEnd, insert, mayDropEnd, processable, processEnd, setEndLocation
 
Methods inherited from class net.sf.joost.instruction.AbstractInstruction
deepCopy, deepHashtableCopy, deepTemplateArrayCopy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

test

private Tree test
the parsed select expression


trueNext

private AbstractInstruction trueNext
next instruction if the test evaluates to true


falseNext

private AbstractInstruction falseNext
next instruction if the test evaluates to false

Constructor Detail

IfFactory.Instance

protected IfFactory.Instance(String qName,
                             NodeBase parent,
                             ParseContext context,
                             Tree test)
Method Detail

compile

public boolean compile(int pass,
                       ParseContext context)
                throws SAXException
Assign trueNext and falseNext

Overrides:
compile in class NodeBase
Parameters:
pass - the number of invocations already performed on this node
context - the parse context
Returns:
true if another invocation in the next pass is necessary, false if the compiling is complete. This instance returns false.
Throws:
SAXException

process

public short process(Context context)
              throws SAXException
Evaluates the expression given in the test attribute and change the value of the next instruction.

Overrides:
process in class NodeBase
Parameters:
context - the current context
Returns:
Constants.PR_CONTINUE
Throws:
SAXException - if an error occurs (in a derived class)

onDeepCopy

protected void onDeepCopy(AbstractInstruction copy,
                          HashMap copies)
Description copied from class: AbstractInstruction
Callback that will be called when a clone of this instance has been created. To be overridden in subclasses.

Overrides:
onDeepCopy in class NodeBase
Parameters:
copy - the created clones
copies - the map of already copied objects

toString

public String toString()
Overrides:
toString in class NodeBase