Package org.teiid.query.processor.proc
Class ProgramInstruction
- java.lang.Object
-
- org.teiid.query.processor.proc.ProgramInstruction
-
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
AssignmentInstruction
,BlockInstruction
,BranchingInstruction
,CreateCursorResultSetInstruction
,ErrorInstruction
,ExecDynamicSqlInstruction
,IfInstruction
,ReturnInstruction
,WhileInstruction
public abstract class ProgramInstruction extends Object implements Cloneable
Abstract superclass of all program instructions.
All processor instructions need to be cloneable, but it most cases the default Object.clone operation will suffice, since in most cases the processing instructions will be stateless, or the state will be immutable. The exception to this are instructions that have sub programs in them - those sub programs need to be cloned.
-
-
Constructor Summary
Constructors Constructor Description ProgramInstruction()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ProgramInstruction
clone()
Override Object.clone() to make the method public.abstract PlanNode
getDescriptionProperties()
abstract void
process(ProcedurePlan env)
Allow this instruction to do whatever processing it needs, and to in turn manipulate the running program.Boolean
requiresTransaction(boolean transactionalReads)
-
-
-
Method Detail
-
process
public abstract void process(ProcedurePlan env) throws TeiidComponentException, TeiidProcessingException, TeiidSQLException
Allow this instruction to do whatever processing it needs, and to in turn manipulate the running program. A typical instruction should simplyincrement
the program counter of the current program, but specialized instructions may add sub programs to the stack or not increment the counter (so that they are executed again.)
-
clone
public ProgramInstruction clone()
Override Object.clone() to make the method public. This method simply calls super.clone(), deferring to the default shallow cloning. Some ProcessorInstruction subclasses may need to override with custom safe or deep cloning.
-
getDescriptionProperties
public abstract PlanNode getDescriptionProperties()
-
requiresTransaction
public Boolean requiresTransaction(boolean transactionalReads)
-
-