com.metamatrix.query.processor.xml
Class IfInstruction

java.lang.Object
  extended by com.metamatrix.query.processor.xml.ProcessorInstruction
      extended by com.metamatrix.query.processor.xml.IfInstruction
All Implemented Interfaces:
Describable

public class IfInstruction
extends ProcessorInstruction

This instruction holds a List of Criteria, and for each Criteria there is a Program that will be executed. Therefore, this ProcessorInstruction implements an arbitrarily deep if-else if-....else block.

During processing, the Criteria are iterated through, in order. When one evaluates to true, that Criteria's Program is placed on to the Program stack, and the loop is broken - this simulates the if-else if-... behavior. An optional "else" or "default" Program can be added via the addDefaultChoiceSubProgram method - this is the optional "else" block at the end of an if-else if-... construct.


Field Summary
 
Fields inherited from interface com.metamatrix.query.processor.Describable
PROP_BINDINGS, PROP_CHILDREN, PROP_CONDITIONS, PROP_CRITERIA, PROP_DATA_COL, PROP_DEFAULT, PROP_DEFAULT_PROGRAM, PROP_ELSE, PROP_ENCODING, PROP_EXECUTION_PLAN, PROP_EXPRESSION, PROP_FORMATTED, PROP_GROUP, PROP_GROUP_COLS, PROP_IN_MEMORY, PROP_INTO_GROUP, PROP_IS_STAGING, PROP_JOIN_CRITERIA, PROP_JOIN_STRATEGY, PROP_JOIN_TYPE, PROP_MESSAGE, PROP_MODEL_NAME, PROP_NAMESPACE, PROP_NAMESPACE_DECL, PROP_NODE_COST_ESTIMATES, PROP_NODE_STATS_LIST, PROP_NODE_STATS_PROPS, PROP_OPTIONAL, PROP_OUTPUT_COLS, PROP_PROGRAM, PROP_PROGRAMS, PROP_RECURSE_DIR, PROP_REMOVE_DUPS, PROP_RESULT_SET, PROP_ROW_LIMIT, PROP_ROW_OFFSET, PROP_SELECT_COLS, PROP_SORT_COLS, PROP_SQL, PROP_TAG, PROP_THEN, PROP_TYPE, PROP_VARIABLE
 
Constructor Summary
IfInstruction()
          Constructor for IfInstruction.
 
Method Summary
 void addCondition(Condition condition)
           
 java.util.Map getDescriptionProperties()
          Get a description as a set of properties of primitive types such as String, Integer, etc.
 com.metamatrix.query.processor.xml.XMLContext process(XMLProcessorEnvironment env, com.metamatrix.query.processor.xml.XMLContext context)
          This instruction will evaluate it's criteria, one by one.
 void setDefaultCondition(DefaultCondition defaultCondition)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IfInstruction

public IfInstruction()
Constructor for IfInstruction.

Parameters:
endIf - see #getEndIf
Method Detail

addCondition

public void addCondition(Condition condition)

setDefaultCondition

public void setDefaultCondition(DefaultCondition defaultCondition)

process

public com.metamatrix.query.processor.xml.XMLContext process(XMLProcessorEnvironment env,
                                                             com.metamatrix.query.processor.xml.XMLContext context)
                                                      throws BlockedException,
                                                             MetaMatrixComponentException,
                                                             MetaMatrixProcessingException
This instruction will evaluate it's criteria, one by one. If any evaluate 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 ProcessorInstruction
Parameters:
env - instance of ProcessorEnvironment which is being used for the processing of the XML document model query
Throws:
BlockedException - if data is not available now but may be at a later time
MetaMatrixComponentException - for non-business exception
MetaMatrixProcessingException - for business exception due to user input or model
See Also:
ProcessorInstruction#process(ProcessorEnvironment)

toString

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

getDescriptionProperties

public java.util.Map getDescriptionProperties()
Description copied from interface: Describable
Get a description as a set of properties of primitive types such as String, Integer, etc.

Specified by:
getDescriptionProperties in interface Describable
Overrides:
getDescriptionProperties in class ProcessorInstruction
Returns:
Map of properties


Copyright © 2009. All Rights Reserved.