org.teiid.query.processor.proc
Class IfInstruction

java.lang.Object
  extended by org.teiid.query.processor.proc.ProgramInstruction
      extended by org.teiid.query.processor.proc.IfInstruction
All Implemented Interfaces:
java.lang.Cloneable

public class IfInstruction
extends ProgramInstruction

This instruction an holds an if block and an else block and a criteria that determines which block will be executed. These blocks are Program objects that could contain nested if-else block. Therefore, this ProgramInstruction implements an arbitrarily deep if-else if-....else block.

During processing, the Criteria is evaluated and if it evaluates to true, the "if" block is executed else the "else" block if there is one is executed. These programs are placed on the stack.


Constructor Summary
IfInstruction(Criteria condition, Program ifProgram)
          Constructor for IfInstruction.
IfInstruction(Criteria condition, Program ifProgram, Program elseProgram)
          Constructor for IfInstruction.
 
Method Summary
 IfInstruction clone()
          Returns a deep clone
 PlanNode getDescriptionProperties()
           
 Program getElseProgram()
           
 Program getIfProgram()
           
 void process(ProcedurePlan procEnv)
          This instruction will evaluate it's criteria, if it evaluates to true, it will push the corresponding sub Program on to the top of the program stack, and break from the loop.
 java.lang.String toString()
           
 
Methods inherited from class org.teiid.query.processor.proc.ProgramInstruction
getChildPlans
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IfInstruction

public IfInstruction(Criteria condition,
                     Program ifProgram,
                     Program elseProgram)
Constructor for IfInstruction.

Parameters:
condition - The Criteria used to determine which block to execute
ifProgram - The Program representing the "if" block
elseProgram - The Program representing the "else" block

IfInstruction

public IfInstruction(Criteria condition,
                     Program ifProgram)
Constructor for IfInstruction.

Parameters:
condition - The Criteria used to determine which block to execute
ifProgram - The Program representing the "if" block
Method Detail

process

public void process(ProcedurePlan procEnv)
             throws BlockedException,
                    TeiidComponentException,
                    TeiidProcessingException
This instruction will evaluate it's criteria, if it evaluates to true, it will push the corresponding sub Program on to the top of the program stack, and break from the loop. Regardless if whether any criteria evaluate to true, this instruction will increment the program counter of the current program.

Specified by:
process in class ProgramInstruction
Throws:
TeiidProcessingException
BlockedException
TeiidComponentException
See Also:
ProgramInstruction.process(ProcedurePlan)

getIfProgram

public Program getIfProgram()

getElseProgram

public Program getElseProgram()

clone

public IfInstruction clone()
Returns a deep clone

Overrides:
clone in class ProgramInstruction
Returns:
shallow clone

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getDescriptionProperties

public PlanNode getDescriptionProperties()
Specified by:
getDescriptionProperties in class ProgramInstruction


Copyright © 2010. All Rights Reserved.