TAO_Binary_Constraint Class Reference

TAO_Binary_Constraint represents an operation with left and right operands. More...

#include <Constraint_Nodes.h>

Inheritance diagram for TAO_Binary_Constraint:

Inheritance graph
[legend]
Collaboration diagram for TAO_Binary_Constraint:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Binary_Constraint (TAO_Expression_Type op_type, TAO_Constraint *left, TAO_Constraint *right)
virtual int accept (TAO_Constraint_Visitor *visitor)
virtual ~TAO_Binary_Constraint (void)
virtual TAO_Expression_Type expr_type (void) const
 Return the expression type represented by this node.
TAO_Constraintleft_operand (void) const
 Return the left operand of the binary expression.
TAO_Constraintright_operand (void) const
 Return the right operand of the binary expression.

Static Public Member Functions

static int visit_or (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_and (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_less_than (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_less_than_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_greater_than (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_greater_than_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_not_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_add (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_sub (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_mult (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_div (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_twiddle (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
static int visit_in (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)

Private Member Functions

 TAO_Binary_Constraint (const TAO_Binary_Constraint &)
TAO_Binary_Constraintoperator= (const TAO_Binary_Constraint &)

Private Attributes

TAO_Expression_Type op_
 The operator type.
TAO_Constraintleft_
 The operands of the expression.
TAO_Constraintright_

Detailed Description

TAO_Binary_Constraint represents an operation with left and right operands.

Definition at line 99 of file Constraint_Nodes.h.


Constructor & Destructor Documentation

TAO_Binary_Constraint::TAO_Binary_Constraint ( TAO_Expression_Type  op_type,
TAO_Constraint left,
TAO_Constraint right 
)

Definition at line 33 of file Constraint_Nodes.cpp.

00036   : op_ (op_type),
00037     left_ (left),
00038     right_ (right)
00039 {
00040 }

TAO_Binary_Constraint::~TAO_Binary_Constraint ( void   )  [virtual]

Definition at line 42 of file Constraint_Nodes.cpp.

References left_, and right_.

00043 {
00044   delete left_;
00045   delete right_;
00046 }

TAO_Binary_Constraint::TAO_Binary_Constraint ( const TAO_Binary_Constraint  )  [private]


Member Function Documentation

int TAO_Binary_Constraint::accept ( TAO_Constraint_Visitor visitor  )  [virtual]

Implementing the pattern of double dispatching, each subclass of TAO_Constraint will call back on an InterpreterVisitor the method to handle a node of its ExpressionType.

Implements TAO_Constraint.

Definition at line 74 of file Constraint_Nodes.cpp.

References dispatch_table, op_, and TAO_GT.

00075 {
00076   int offset = this->op_ - TAO_GT,
00077     return_value = -1;
00078 
00079   if (dispatch_table[offset] != 0)
00080     return_value = dispatch_table[offset] (visitor, this);
00081 
00082   return return_value;
00083 }

virtual TAO_Expression_Type TAO_Binary_Constraint::expr_type ( void   )  const [inline, virtual]

Return the expression type represented by this node.

Implements TAO_Constraint.

Definition at line 111 of file Constraint_Nodes.h.

00112     { return this->op_; }

TAO_Constraint * TAO_Binary_Constraint::left_operand ( void   )  const

Return the left operand of the binary expression.

Definition at line 199 of file Constraint_Nodes.cpp.

References left_.

Referenced by TAO_Constraint_Validator::visit_add(), TAO_Constraint_Validator::visit_and(), TAO_Constraint_Evaluator::visit_and(), TAO_Constraint_Evaluator::visit_bin_op(), TAO_Constraint_Validator::visit_div(), TAO_Constraint_Validator::visit_equal(), TAO_Constraint_Validator::visit_in(), TAO_Constraint_Evaluator::visit_in(), TAO_Constraint_Validator::visit_less_than(), TAO_Constraint_Evaluator::visit_or(), TAO_Constraint_Validator::visit_twiddle(), and TAO_Constraint_Evaluator::visit_twiddle().

00200 {
00201   return this->left_;
00202 }

TAO_Binary_Constraint& TAO_Binary_Constraint::operator= ( const TAO_Binary_Constraint  )  [private]

TAO_Constraint * TAO_Binary_Constraint::right_operand ( void   )  const

Return the right operand of the binary expression.

Definition at line 205 of file Constraint_Nodes.cpp.

References right_.

Referenced by TAO_Constraint_Validator::visit_add(), TAO_Constraint_Validator::visit_and(), TAO_Constraint_Evaluator::visit_and(), TAO_Constraint_Evaluator::visit_bin_op(), TAO_Constraint_Validator::visit_div(), TAO_Constraint_Validator::visit_equal(), TAO_Constraint_Validator::visit_in(), TAO_Constraint_Evaluator::visit_in(), TAO_Constraint_Validator::visit_less_than(), TAO_Constraint_Evaluator::visit_or(), TAO_Constraint_Validator::visit_twiddle(), and TAO_Constraint_Evaluator::visit_twiddle().

00206 {
00207   return this->right_;
00208 }

int TAO_Binary_Constraint::visit_add ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 151 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_add().

00153 {
00154   return visitor->visit_add (expr);
00155 }

int TAO_Binary_Constraint::visit_and ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 95 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_and().

00097 {
00098   return visitor->visit_and (expr);
00099 }

int TAO_Binary_Constraint::visit_div ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 175 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_div().

00177 {
00178   return visitor->visit_div (expr);
00179 }

int TAO_Binary_Constraint::visit_equal ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 135 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_equal().

00137 {
00138   return visitor->visit_equal (expr);
00139 }

int TAO_Binary_Constraint::visit_greater_than ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 119 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_greater_than().

00121 {
00122   return visitor->visit_greater_than (expr);
00123 }

int TAO_Binary_Constraint::visit_greater_than_equal ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 127 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_greater_than_equal().

00129 {
00130   return visitor->visit_greater_than_equal (expr);
00131 }

int TAO_Binary_Constraint::visit_in ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 191 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_in().

00193 {
00194   return visitor->visit_in (expr);
00195 }

int TAO_Binary_Constraint::visit_less_than ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 103 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_less_than().

00105 {
00106   return visitor->visit_less_than (expr);
00107 }

int TAO_Binary_Constraint::visit_less_than_equal ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 111 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_less_than_equal().

00113 {
00114   return visitor->visit_less_than_equal (expr);
00115 }

int TAO_Binary_Constraint::visit_mult ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 167 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_mult().

00169 {
00170   return visitor->visit_mult (expr);
00171 }

int TAO_Binary_Constraint::visit_not_equal ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 143 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_not_equal().

00145 {
00146   return visitor->visit_not_equal (expr);
00147 }

int TAO_Binary_Constraint::visit_or ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 87 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_or().

00089 {
00090   return visitor->visit_or (expr);
00091 }

int TAO_Binary_Constraint::visit_sub ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 159 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_sub().

00161 {
00162   return visitor->visit_sub (expr);
00163 }

int TAO_Binary_Constraint::visit_twiddle ( TAO_Constraint_Visitor ,
TAO_Binary_Constraint  
) [static]

Definition at line 183 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_twiddle().

00185 {
00186   return visitor->visit_twiddle (expr);
00187 }


Member Data Documentation

TAO_Constraint* TAO_Binary_Constraint::left_ [private]

The operands of the expression.

Definition at line 148 of file Constraint_Nodes.h.

Referenced by left_operand(), and ~TAO_Binary_Constraint().

TAO_Expression_Type TAO_Binary_Constraint::op_ [private]

The operator type.

Definition at line 145 of file Constraint_Nodes.h.

Referenced by accept().

TAO_Constraint* TAO_Binary_Constraint::right_ [private]

Definition at line 149 of file Constraint_Nodes.h.

Referenced by right_operand(), and ~TAO_Binary_Constraint().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:49:31 2010 for TAO_CosTrader by  doxygen 1.4.7