AEQuinaryExprT< BaseNodeT, Operand1T, Operand2T, Operand3T, Operand4T, Operand5T, Operand1PtrT, Operand2PtrT, Operand3PtrT, Operand4PtrT, Operand5PtrT > Class Template Reference

A template class that models an operation that takes five 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 5.
const Operand5T * GetFifthOperand () const
 Retrieves a pointer reference to the fifth operand.
Operand5T * GetFifthOperand ()
 Retrieves a pointer reference to the fifth operand.
const Operand1T * GetFirstOperand () const
 Retrieves a pointer reference to the first operand.
Operand1T * GetFirstOperand ()
 Retrieves a pointer reference to the first operand.
const Operand4T * GetFourthOperand () const
 Retrieves a pointer reference to the fourth operand.
Operand4T * GetFourthOperand ()
 Retrieves a pointer reference to the fourth 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 SetFifthOperand (Operand5PtrT in_fifthOperand)
 Grants the ownership of the given object wrapped in an auto pointer to this object as the fifth 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 SetFourthOperand (Operand4PtrT in_fourthOperand)
 Grants the ownership of the given object wrapped in an auto pointer to this object as the fourth 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.
Operand5PtrT TakeFifthOperand ()
 Takes the ownership of the fifth operand away from this object.
Operand1PtrT TakeFirstOperand ()
 Takes the ownership of the first operand away from this object.
Operand4PtrT TakeFourthOperand ()
 Takes the ownership of the fourth 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 ~AEQuinaryExprT ()
 Destructor.

Protected Member Functions

 AEQuinaryExprT (const AEQuinaryExprT &in_other)
 Copy constructor.
 AEQuinaryExprT (Operand1PtrT in_firstOperand, Operand2PtrT in_secondOperand, Operand3PtrT in_thirdOperand, Operand4PtrT in_fourthOperand, Operand5PtrT in_fifthOperand)
 Constructor.
 AEQuinaryExprT ()
 Default constructor.

Protected Attributes

Operand5PtrT m_fifthOperand
 The fifth operand of the Quinary operation. (OWN).
Operand1PtrT m_firstOperand
 The first operand of the Quinary operation. (OWN).
Operand4PtrT m_fourthOperand
 The fourth operand of the Quinary operation. (OWN).
Operand2PtrT m_secondOperand
 The second operand of the Quinary operation. (OWN).
Operand3PtrT m_thirdOperand
 The third operand of the Quinary operation. (OWN).

Detailed Description

template<typename BaseNodeT, typename Operand1T, typename Operand2T = Operand1T, typename Operand3T = Operand1T, typename Operand4T = Operand1T, typename Operand5T = Operand1T, typename Operand1PtrT = AutoPtr<Operand1T>, typename Operand2PtrT = AutoPtr<Operand2T>, typename Operand3PtrT = AutoPtr<Operand3T>, typename Operand4PtrT = AutoPtr<Operand4T>, typename Operand5PtrT = AutoPtr<Operand5T>>
class Simba::SQLEngine::AEQuinaryExprT< BaseNodeT, Operand1T, Operand2T, Operand3T, Operand4T, Operand5T, Operand1PtrT, Operand2PtrT, Operand3PtrT, Operand4PtrT, Operand5PtrT >

A template class that models an operation that takes five 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 Quinary expression class. Must be AENode or AENode-derived.
Operand1T The first operand type.
Operand2T The second operand type.
Operand3T The third operand type.
Operand4T The fourth operand type.
Operand5T The fifth operand type.
Operand1PtrT Pointer type for Operand1T.
Operand2PtrT Pointer type for Operand2T.
Operand3PtrT Pointer type for Operand3T.
Operand4PtrT Pointer type for Operand4T.
Operand5PtrT Pointer type for Operand5T.

This design not only helps avoid the use of multiple inheritance but also allows better code reuse.


Constructor & Destructor Documentation

virtual ~AEQuinaryExprT (  )  [inline, virtual]

Destructor.

AEQuinaryExprT (  )  [inline, protected]

Default constructor.

AEQuinaryExprT ( Operand1PtrT  in_firstOperand,
Operand2PtrT  in_secondOperand,
Operand3PtrT  in_thirdOperand,
Operand4PtrT  in_fourthOperand,
Operand5PtrT  in_fifthOperand 
) [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)
in_fourthOperand The fourth operand. (OWN)
in_fifthOperand The fifth operand. (OWN)
Exceptions:
SEInvalidArgumentException when one of the operands does not own an object.
AEQuinaryExprT ( const AEQuinaryExprT< BaseNodeT, Operand1T, Operand2T, Operand3T, Operand4T, Operand5T, Operand1PtrT, Operand2PtrT, Operand3PtrT, Operand4PtrT, Operand5PtrT > &  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 quinary 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)

Reimplemented in AEMerge.

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)

Reimplemented in AEMerge.

virtual simba_size_t GetChildCount (  )  const [inline, virtual]

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

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

Returns:
the number of child nodes.

Reimplemented in AEMerge.

const Operand5T* GetFifthOperand (  )  const [inline]

Retrieves a pointer reference to the fifth operand.

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

Returns:
the fifth operand. (NOT OWN)
Operand5T* GetFifthOperand (  )  [inline]

Retrieves a pointer reference to the fifth operand.

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

Returns:
the fifth operand. (NOT OWN)
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 Operand4T* GetFourthOperand (  )  const [inline]

Retrieves a pointer reference to the fourth operand.

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

Returns:
the fourth operand. (NOT OWN)
Operand4T* GetFourthOperand (  )  [inline]

Retrieves a pointer reference to the fourth operand.

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

Returns:
the fourth 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 SetFifthOperand ( Operand5PtrT  in_fifthOperand  )  [inline]

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

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

Parameters:
in_fifthOperand The fifth operand.
Exceptions:
SEInvalidArgumentException when in_fifthOperand does not own an object
SEInvalidOperationException when this object already has the fifth operand
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 SetFourthOperand ( Operand4PtrT  in_fourthOperand  )  [inline]

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

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

Parameters:
in_fourthOperand The fourth operand.
Exceptions:
SEInvalidArgumentException when in_fourthOperand does not own an object
SEInvalidOperationException when this object already has the fourth 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
Operand5PtrT TakeFifthOperand (  )  [inline]

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

Make sure the fifth operand is present.

Exceptions:
SEInvalidOperationException when the fifth operand is not present
Returns:
the fifth operand (OWN)
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)
Operand4PtrT TakeFourthOperand (  )  [inline]

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

Make sure the fourth operand is present.

Exceptions:
SEInvalidOperationException when the fourth operand is not present
Returns:
the fourth 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

Operand5PtrT m_fifthOperand [protected]

The fifth operand of the Quinary operation. (OWN).

Operand1PtrT m_firstOperand [protected]

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

Operand4PtrT m_fourthOperand [protected]

The fourth operand of the Quinary operation. (OWN).

Operand2PtrT m_secondOperand [protected]

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

Operand3PtrT m_thirdOperand [protected]

The third operand of the Quinary 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