AETernaryExprT< BaseNodeT, Operand1T, Operand2T, Operand3T, Operand1PtrT, Operand2PtrT, Operand3PtrT > Class Template Reference

A template class that models an operation that takes three operands. More...

List of all members.

Public Member Functions

virtual const AENodeGetChild (simba_size_t in_index) const
 Returns the specified child node.
virtual AENodeGetChild (simba_size_t in_index)
 Returns the specified child node.
virtual simba_size_t GetChildCount () const
 Returns the number of child nodes. In this case, it always returns 2.
const Operand1T * GetFirstOperand () const
 Retrieves a pointer reference to the first operand.
Operand1T * GetFirstOperand ()
 Retrieves a pointer reference to the first operand.
const Operand2T * GetSecondOperand () const
 Retrieves a pointer reference to the second operand.
Operand2T * GetSecondOperand ()
 Retrieves a pointer reference to the second operand.
const Operand3T * GetThirdOperand () const
 Retrieves a pointer reference to the third operand.
Operand3T * GetThirdOperand ()
 Retrieves a pointer reference to the third operand.
void SetFirstOperand (Operand1PtrT in_firstOperand)
 Grants the ownership of the given object wrapped in an auto pointer to this object as the first operand.
void SetSecondOperand (Operand2PtrT in_secondOperand)
 Grant the ownership of the given object wrapped in an auto pointer to this object as the second operand.
void SetThirdOperand (Operand3PtrT in_thirdOperand)
 Grants the ownership of the given object wrapped in an auto pointer to this object as the third operand.
Operand1PtrT TakeFirstOperand ()
 Takes the ownership of the first operand away from this object.
Operand2PtrT TakeSecondOperand ()
 Takes the ownership of the second operand away from this object.
Operand3PtrT TakeThirdOperand ()
 Takes the ownership of the third operand away from this object.
virtual ~AETernaryExprT ()
 Destructor.

Protected Member Functions

 AETernaryExprT (const AETernaryExprT &in_other)
 Copy constructor.
 AETernaryExprT (Operand1PtrT in_firstOperand, Operand2PtrT in_secondOperand, Operand3PtrT in_thirdOperand)
 Constructor.
 AETernaryExprT ()
 Default constructor.

Protected Attributes

Operand1PtrT m_firstOperand
 The first operand of the ternary operation. (OWN).
Operand2PtrT m_secondOperand
 The second operand of the ternary operation. (OWN).
Operand3PtrT m_thirdOperand
 The third operand of the ternary operation. (OWN).

Detailed Description

template<typename BaseNodeT, typename Operand1T, typename Operand2T = Operand1T, typename Operand3T = Operand1T, typename Operand1PtrT = AutoPtr<Operand1T>, typename Operand2PtrT = AutoPtr<Operand2T>, typename Operand3PtrT = AutoPtr<Operand3T>>
class Simba::SQLEngine::AETernaryExprT< BaseNodeT, Operand1T, Operand2T, Operand3T, Operand1PtrT, Operand2PtrT, Operand3PtrT >

A template class that models an operation that takes three operands.

For practical purposes, this template class does not enforce that all operands to be the same type.

Parameters:
BaseNodeT The base class for this ternary expression class. Must be AENode or AENode-derived.
Operand1T The first operand type.
Operand2T The second operand type.
Operand3T The third operand type.
Operand1PtrT Pointer type for Operand1T.
Operand2PtrT Pointer type for Operand2T.
Operand3PtrT Pointer type for Operand3T.

Constructor & Destructor Documentation

virtual ~AETernaryExprT (  )  [inline, virtual]

Destructor.

AETernaryExprT (  )  [inline, protected]

Default constructor.

AETernaryExprT ( Operand1PtrT  in_firstOperand,
Operand2PtrT  in_secondOperand,
Operand3PtrT  in_thirdOperand 
) [inline, protected]

Constructor.

The ownership of the operand objects passed in through the constructor is transferred to this object.

Parameters:
in_firstOperand The first operand. (OWN)
in_secondOperand The second operand. (OWN)
in_thirdOperand The third operand. (OWN)
Exceptions:
SEInvalidArgumentException when one of the operands does not own an object.
AETernaryExprT ( const AETernaryExprT< BaseNodeT, Operand1T, Operand2T, Operand3T, Operand1PtrT, Operand2PtrT, Operand3PtrT > &  in_other  )  [inline, protected]

Copy constructor.

The ownership of the operand objects passed in through the constructor is transferred to this object.

Parameters:
in_other The ternary expression to copy from.

Member Function Documentation

virtual const AENode* GetChild ( simba_size_t  in_index  )  const [inline, virtual]

Returns the specified child node.

The first operand is considered to be the child 0 and the second operand is considered to be the child 1. The caller of this method does not own the returned child node.

This method is designed to override the method defined in BaseNodeT as seen in AENode.

Parameters:
in_index The zero-based index for the child.
Exceptions:
SEInvalidArgumentException when in_index is invalid.
Returns:
A pointer reference to the requested child node. (NOT OWN)
virtual AENode* GetChild ( simba_size_t  in_index  )  [inline, virtual]

Returns the specified child node.

The first operand is considered to be the child 0 and the second operand is considered to be the child 1. The caller of this method does not own the returned child node.

This method is designed to override the method defined in BaseNodeT as seen in AENode.

Parameters:
in_index The zero-based index for the child.
Exceptions:
SEInvalidArgumentException when in_index is invalid.
Returns:
A pointer reference to the requested child node. (NOT OWN)
virtual simba_size_t GetChildCount (  )  const [inline, virtual]

Returns the number of child nodes. In this case, it always returns 2.

This method is designed to override the method defined in BaseNodeT as seen in AENode.

Returns:
the number of child nodes.
const Operand1T* GetFirstOperand (  )  const [inline]

Retrieves a pointer reference to the first operand.

The caller of the method does not own the returned object. If it wishes to take control of the ownership of the first operand object, call TakeFirstOperand() instead.

Returns:
the first operand. (NOT OWN)
Operand1T* GetFirstOperand (  )  [inline]

Retrieves a pointer reference to the first operand.

The caller of the method does not own the returned object. If it wishes to take control of the ownership of the first operand object, call TakeFirstOperand() instead.

Returns:
the first operand. (NOT OWN)
const Operand2T* GetSecondOperand (  )  const [inline]

Retrieves a pointer reference to the second operand.

The caller of the method does not own the returned object. If it wishes to take control of the ownership of the second operand object, call TakeSecondOperand() instead.

Returns:
the second operand. (NOT OWN)
Operand2T* GetSecondOperand (  )  [inline]

Retrieves a pointer reference to the second operand.

The caller of the method does not own the returned object. If it wishes to take control of the ownership of the second operand object, call TakeSecondOperand() instead.

Returns:
the second operand. (NOT OWN)
const Operand3T* GetThirdOperand (  )  const [inline]

Retrieves a pointer reference to the third operand.

The caller of the method does not own the returned object. If it wishes to take control of the ownership of the third operand object, call TakeThirdOperand() instead.

Returns:
the third operand. (NOT OWN)
Operand3T* GetThirdOperand (  )  [inline]

Retrieves a pointer reference to the third operand.

The caller of the method does not own the returned object. If it wishes to take control of the ownership of the third operand object, call TakeThirdOperand() instead.

Returns:
the third operand. (NOT OWN)
void SetFirstOperand ( Operand1PtrT  in_firstOperand  )  [inline]

Grants the ownership of the given object wrapped in an auto pointer to this object as the first operand.

Make sure this object does not already have the first operand.

Parameters:
in_firstOperand The first operand.
Exceptions:
SEInvalidArgumentException when in_firstOperand does not own an object
SEInvalidOperationException when this object already has the first operand
void SetSecondOperand ( Operand2PtrT  in_secondOperand  )  [inline]

Grant the ownership of the given object wrapped in an auto pointer to this object as the second operand.

Make sure this object does not already have the second operand.

Parameters:
in_secondOperand The second operand.
Exceptions:
SEInvalidArgumentException when in_secondOperand does not own an object
SEInvalidOperationException when this object already has the second operand
void SetThirdOperand ( Operand3PtrT  in_thirdOperand  )  [inline]

Grants the ownership of the given object wrapped in an auto pointer to this object as the third operand.

Make sure this object does not already have the third operand.

Parameters:
in_thirdOperand The third operand.
Exceptions:
SEInvalidArgumentException when in_thirdOperand does not own an object
SEInvalidOperationException when this object already has the third operand
Operand1PtrT TakeFirstOperand (  )  [inline]

Takes the ownership of the first operand away from this object.

Make sure the first operand is present.

Exceptions:
SEInvalidOperationException when the first operand is not present
Returns:
the first operand (OWN)
Operand2PtrT TakeSecondOperand (  )  [inline]

Takes the ownership of the second operand away from this object.

Make sure the second operand is present.

Exceptions:
SEInvalidOperationException when the second operand is not present
Returns:
the second operand (OWN)
Operand3PtrT TakeThirdOperand (  )  [inline]

Takes the ownership of the third operand away from this object.

Make sure the third operand is present.

Exceptions:
SEInvalidOperationException when the third operand is not present
Returns:
the third operand (OWN)

Member Data Documentation

Operand1PtrT m_firstOperand [protected]

The first operand of the ternary operation. (OWN).

Operand2PtrT m_secondOperand [protected]

The second operand of the ternary operation. (OWN).

Operand3PtrT m_thirdOperand [protected]

The third operand of the ternary operation. (OWN).


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

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