ETNode Class Reference

This is the abstract base class for all execution tree nodes. Its main functionality is to facilitate generic execution tree traversal. More...

Inherited by ETExpr.

List of all members.

Public Member Functions

virtual void AcceptVisitor (ETNodeVisitor *in_visitor)=0
 Calls the correct method on the visitor.
virtual ETNodeGetChild (simba_size_t in_index)=0
 Get a pointer reference to the specified child node.
virtual simba_size_t GetChildCount () const =0
 Get the number of child nodes that this node has.
ETNodeIterator GetChildren ()
 Get an iterator that iterates through all the child nodes.
virtual simba_wstring GetLogString () const =0
 This method returns a string name for this node for logging purpose.
virtual ETNodeType GetNodeType () const =0
 Get the integer that uniquely identifies the node class. See the definition of ETNodeType for values defined.
virtual bool IsRelationalExpr () const
 Determine if this ETNode is a relational expression.
virtual bool IsValueExpr () const
 Determine if this ETNode is a value expression.
virtual ~ETNode ()
 Destructor.

Protected Member Functions

 ETNode ()
 Constructor.

Detailed Description

This is the abstract base class for all execution tree nodes. Its main functionality is to facilitate generic execution tree traversal.

This class (along with all other derived classes) plays the "visitee" role in the Visitor Pattern (see the book "Design Patterns" by Erich Gamma, et al.).


Constructor & Destructor Documentation

virtual ~ETNode (  )  [virtual]

Destructor.

ETNode (  )  [protected]

Constructor.

Protected since this is an abstract class.


Member Function Documentation

virtual void AcceptVisitor ( ETNodeVisitor *  in_visitor  )  [pure virtual]

Calls the correct method on the visitor.

Parameters:
in_visitor The visitor object. (NOT OWN)

Implemented in ETInnerJoin, and ETRelationalCache.

virtual ETNode* GetChild ( simba_size_t  in_index  )  [pure virtual]

Get a pointer reference to the specified child node.

IMPLEMENTATION NOTE: This method should be overridden when GetChildCount() is overridden in a child class of this class. Otherwise, there is almost always a consistency issue.

Parameters:
in_index a zero-based index
Exceptions:
SEInvalidArgumentException when in_index is invalid
SEInvalidOperationException when this is a leaf node
Returns:
the child node indexed by in_index. (NOT OWN)

Implemented in ETBinaryExprT< ETRelationalExpr, ETRelationalExpr, OperandT, AutoPtr< ETRelationalExpr >, OperandPtrT >, ETBinaryExprT< ETRelationalExpr, ETRelationalExpr >, and ETUnaryExprT< ETRelationalExpr, ETRelationalExpr >.

virtual simba_size_t GetChildCount (  )  const [pure virtual]

Get the number of child nodes that this node has.

IMPLEMENTATION NOTE: This method should be overridden when GetChild() is overridden in a child class of this class. Otherwise, there is almost always a consistency issue.

Returns:
the number of child nodes that this node has.

Implemented in ETBinaryExprT< ETRelationalExpr, ETRelationalExpr, OperandT, AutoPtr< ETRelationalExpr >, OperandPtrT >, ETBinaryExprT< ETRelationalExpr, ETRelationalExpr >, and ETUnaryExprT< ETRelationalExpr, ETRelationalExpr >.

ETNodeIterator GetChildren (  ) 

Get an iterator that iterates through all the child nodes.

Returns:
an iterator that iterates through all child nodes.
virtual simba_wstring GetLogString (  )  const [pure virtual]

This method returns a string name for this node for logging purpose.

Returns:
A string representation of this node for logging purposes.

Implemented in ETInnerJoin, and ETRelationalCache.

virtual ETNodeType GetNodeType (  )  const [pure virtual]

Get the integer that uniquely identifies the node class. See the definition of ETNodeType for values defined.

Returns:
The node type identifier.

Implemented in ETInnerJoin, and ETRelationalCache.

virtual bool IsRelationalExpr (  )  const [virtual]

Determine if this ETNode is a relational expression.

Returns:
True if the node is a relational expression; false otherwise.

Reimplemented in ETRelationalExpr.

virtual bool IsValueExpr (  )  const [virtual]

Determine if this ETNode is a value expression.

Returns:
True if the node is a value expression; false otherwise.

The documentation for this class was generated from the following file:

Generated on Wed May 17 14:21:18 2017 for SimbaEngine 10.1.3.1011 by simba