Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.atnf.csiro.au/computing/software/casacore/casacore-1.2.0/doc/html/classcasa_1_1TableExprNodeBinary.html
Дата изменения: Unknown Дата индексирования: Mon Feb 14 23:17:11 2011 Кодировка: Поисковые слова: guide 8.0 |
Abstract base class for a node having 0, 1, or 2 child nodes. More...
#include <ExprNodeRep.h>
Public Member Functions | |
TableExprNodeBinary (NodeDataType, ValueType, OperType, const Table &) | |
Constructor. | |
TableExprNodeBinary (NodeDataType, const TableExprNodeRep &, OperType) | |
virtual | ~TableExprNodeBinary () |
Destructor. | |
virtual void | show (ostream &, uInt indent) const |
Show the expression tree. | |
virtual Bool | isSingleValue () const |
Does the node result in a single value (for e.g. | |
virtual void | handleUnits () |
Handle the units of the children and possibly set the parent's unit. | |
void | convertConstChild () |
When one of the children is a constant, convert its data type to that of the other operand. | |
virtual void | replaceTablePtr (const Table &) |
Replace the Table in this node and all its children. | |
const TableExprNodeRep * | getLeftChild () const |
Get the child nodes. | |
const TableExprNodeRep * | getRightChild () const |
Static Public Member Functions | |
static NodeDataType | getDT (NodeDataType leftDtype, NodeDataType rightDype, OperType operType) |
Check the data types and get the common one. | |
static TableExprNodeRep | getTypes (const TableExprNodeRep &left, const TableExprNodeRep &right, OperType operType) |
Check the data and value types and get the common one. | |
static TableExprNodeRep * | fillNode (TableExprNodeBinary *thisNode, TableExprNodeRep *left, TableExprNodeRep *right, Bool convertConstType) |
Link the children to the node and convert the children to constants if needed and possible. | |
Static Protected Member Functions | |
static const Unit & | makeEqualUnits (TableExprNodeRep *left, TableExprNodeRep *&right) |
Make the units equal. | |
Protected Attributes | |
TableExprNodeRep * | lnode_p |
TableExprNodeRep * | rnode_p |
Abstract base class for a node having 0, 1, or 2 child nodes.
Internal
TableExprNodeBinary is a node in the table expression tree representing a binary node (i.e. having 2 operands).
TableExprNodeBinary is the abstract base class for all nodes in a table expression tree using up to 2 operands. It is used as the base class for the node classes representing operator +, -, etc.\.
This class contains the common functionality for the classes representing a binary (or unary) operator.
Definition at line 484 of file ExprNodeRep.h.
casa::TableExprNodeBinary::TableExprNodeBinary | ( | NodeDataType | , | |
ValueType | , | |||
OperType | , | |||
const Table & | ||||
) |
Constructor.
casa::TableExprNodeBinary::TableExprNodeBinary | ( | NodeDataType | , | |
const TableExprNodeRep & | , | |||
OperType | ||||
) |
virtual casa::TableExprNodeBinary::~TableExprNodeBinary | ( | ) | [virtual] |
Destructor.
void casa::TableExprNodeBinary::convertConstChild | ( | ) | [virtual] |
When one of the children is a constant, convert its data type to that of the other operand.
This avoids that conversions are done for each get.
Reimplemented from casa::TableExprNodeRep.
static TableExprNodeRep* casa::TableExprNodeBinary::fillNode | ( | TableExprNodeBinary * | thisNode, | |
TableExprNodeRep * | left, | |||
TableExprNodeRep * | right, | |||
Bool | convertConstType | |||
) | [static] |
Link the children to the node and convert the children to constants if needed and possible.
Also convert the node to constant if possible.
static NodeDataType casa::TableExprNodeBinary::getDT | ( | NodeDataType | leftDtype, | |
NodeDataType | rightDype, | |||
OperType | operType | |||
) | [static] |
Check the data types and get the common one.
const TableExprNodeRep* casa::TableExprNodeBinary::getLeftChild | ( | ) | const [inline] |
const TableExprNodeRep* casa::TableExprNodeBinary::getRightChild | ( | ) | const [inline] |
Definition at line 535 of file ExprNodeRep.h.
References rnode_p.
static TableExprNodeRep casa::TableExprNodeBinary::getTypes | ( | const TableExprNodeRep & | left, | |
const TableExprNodeRep & | right, | |||
OperType | operType | |||
) | [static] |
Check the data and value types and get the common one.
virtual void casa::TableExprNodeBinary::handleUnits | ( | ) | [virtual] |
Handle the units of the children and possibly set the parent's unit.
The default implementation make the units of the children equal and set the parent unit to that unit if the parent is not a Bool value.
Reimplemented in casa::TableExprNodePlusDate, casa::TableExprNodeMinusInt, casa::TableExprNodeMinusDouble, casa::TableExprNodeMinusDate, casa::TableExprNodeTimes, casa::TableExprNodeDivide, casa::TableExprNodeModulo, casa::TableExprNodeArrayTimes, casa::TableExprNodeArrayDivide, and casa::TableExprNodeArrayModulo.
virtual Bool casa::TableExprNodeBinary::isSingleValue | ( | ) | const [virtual] |
Does the node result in a single value (for e.g.
GROUPBY)?
Reimplemented from casa::TableExprNodeRep.
static const Unit& casa::TableExprNodeBinary::makeEqualUnits | ( | TableExprNodeRep * | left, | |
TableExprNodeRep *& | right | |||
) | [static, protected] |
Make the units equal.
Replace the right node if needed.
virtual void casa::TableExprNodeBinary::replaceTablePtr | ( | const Table & | ) | [virtual] |
Replace the Table in this node and all its children.
Reimplemented from casa::TableExprNodeRep.
Reimplemented in casa::TableExprNodeColumn, casa::TableExprNodeArrayColumn, casa::TableExprNodeArrayColumnBool, casa::TableExprNodeArrayColumnuChar, casa::TableExprNodeArrayColumnShort, casa::TableExprNodeArrayColumnuShort, casa::TableExprNodeArrayColumnInt, casa::TableExprNodeArrayColumnuInt, casa::TableExprNodeArrayColumnFloat, casa::TableExprNodeArrayColumnDouble, casa::TableExprNodeArrayColumnComplex, casa::TableExprNodeArrayColumnDComplex, and casa::TableExprNodeArrayColumnString.
virtual void casa::TableExprNodeBinary::show | ( | ostream & | , | |
uInt | indent | |||
) | const [virtual] |
Show the expression tree.
Reimplemented from casa::TableExprNodeRep.
Reimplemented in casa::TableExprNodeArrayPart.
TableExprNodeRep* casa::TableExprNodeBinary::lnode_p [protected] |
Definition at line 545 of file ExprNodeRep.h.
Referenced by getLeftChild().
TableExprNodeRep* casa::TableExprNodeBinary::rnode_p [protected] |
Definition at line 546 of file ExprNodeRep.h.
Referenced by getRightChild().