Abstract base class for a node having multiple child nodes. More...
#include <ExprNodeRep.h>
Public Member Functions | |
TableExprNodeMulti (NodeDataType, ValueType, OperType, const TableExprNodeRep &source) | |
Constructor. | |
virtual | ~TableExprNodeMulti () |
Destructor. | |
virtual void | show (ostream &, uInt indent) const |
Show the expression tree. | |
virtual void | getAggrNodes (vector< TableExprNodeRep * > &aggr) |
Get the nodes representing an aggregate function. | |
virtual void | getColumnNodes (vector< TableExprNodeRep * > &cols) |
Get the nodes representing a table column. | |
const PtrBlock < TableExprNodeRep * > & | getChildren () const |
Get the child nodes. | |
Static Public Member Functions | |
static uInt | checkNumOfArg (uInt low, uInt high, const PtrBlock< TableExprNodeRep * > &nodes) |
Check number of arguments low <= number_of_args <= high It throws an exception if wrong number of arguments. | |
static NodeDataType | checkDT (Block< Int > &dtypeOper, NodeDataType dtIn, NodeDataType dtOut, const PtrBlock< TableExprNodeRep * > &nodes) |
Check datatype of nodes and return output type. | |
Protected Attributes | |
PtrBlock< TableExprNodeRep * > | operands_p |
Abstract base class for a node having multiple child nodes.
Internal
TableExprNodeMulti is a node in the table expression tree which can have MULTIple child nodes.
TableExprNodeMulti is the abstract base class for all nodes in a table expression tree using multiple operands. It is used as the base class for the node classes representing functions, sets, indices, etc.\.
This class contains the common functionality for the classes representing a node with multiple operands.
Definition at line 660 of file ExprNodeRep.h.
casacore::TableExprNodeMulti::TableExprNodeMulti | ( | NodeDataType | , | |
ValueType | , | |||
OperType | , | |||
const TableExprNodeRep & | source | |||
) |
Constructor.
virtual casacore::TableExprNodeMulti::~TableExprNodeMulti | ( | ) | [virtual] |
Destructor.
static NodeDataType casacore::TableExprNodeMulti::checkDT | ( | Block< Int > & | dtypeOper, | |
NodeDataType | dtIn, | |||
NodeDataType | dtOut, | |||
const PtrBlock< TableExprNodeRep * > & | nodes | |||
) | [static] |
Check datatype of nodes and return output type.
It also sets the expected data type of the operands (from dtIn).
static uInt casacore::TableExprNodeMulti::checkNumOfArg | ( | uInt | low, | |
uInt | high, | |||
const PtrBlock< TableExprNodeRep * > & | nodes | |||
) | [static] |
Check number of arguments low <= number_of_args <= high It throws an exception if wrong number of arguments.
virtual void casacore::TableExprNodeMulti::getAggrNodes | ( | vector< TableExprNodeRep * > & | aggr | ) | [virtual] |
Get the nodes representing an aggregate function.
Reimplemented in casacore::TableExprAggrNode, and casacore::TableExprUDFNode.
const PtrBlock<TableExprNodeRep*>& casacore::TableExprNodeMulti::getChildren | ( | ) | const [inline] |
virtual void casacore::TableExprNodeMulti::getColumnNodes | ( | vector< TableExprNodeRep * > & | cols | ) | [virtual] |
Get the nodes representing a table column.
Reimplemented in casacore::TableExprUDFNode.
virtual void casacore::TableExprNodeMulti::show | ( | ostream & | , | |
uInt | indent | |||
) | const [virtual] |
Show the expression tree.
Reimplemented from casacore::TableExprNodeRep.
PtrBlock<TableExprNodeRep*> casacore::TableExprNodeMulti::operands_p [protected] |
Definition at line 696 of file ExprNodeRep.h.
Referenced by getChildren(), casacore::TableExprFuncNode::operands(), and casacore::TableExprFuncNode::rwOperands().