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

int visit_or (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_and (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_less_than (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_less_than_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_greater_than (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_greater_than_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_not_equal (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_add (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_sub (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_mult (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_div (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
int visit_twiddle (TAO_Constraint_Visitor *, TAO_Binary_Constraint *)
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 101 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 32 of file Constraint_Nodes.cpp.

References TAO_Expression_Type.

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

TAO_Binary_Constraint::~TAO_Binary_Constraint void   )  [virtual]
 

Definition at line 41 of file Constraint_Nodes.cpp.

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

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 73 of file Constraint_Nodes.cpp.

References dispatch_table, op_, and TAO_GT.

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

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 113 of file Constraint_Nodes.h.

References TAO_Expression_Type.

00114     { return this->op_; }

TAO_Constraint * TAO_Binary_Constraint::left_operand void   )  const
 

Return the left operand of the binary expression.

Definition at line 198 of file Constraint_Nodes.cpp.

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().

00199 {
00200   return this->left_;
00201 }

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 204 of file Constraint_Nodes.cpp.

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().

00205 {
00206   return this->right_;
00207 }

int TAO_Binary_Constraint::visit_add TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 150 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_add().

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

int TAO_Binary_Constraint::visit_and TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 94 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_and().

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

int TAO_Binary_Constraint::visit_div TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 174 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_div().

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

int TAO_Binary_Constraint::visit_equal TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 134 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_equal().

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

int TAO_Binary_Constraint::visit_greater_than TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 118 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_greater_than().

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

int TAO_Binary_Constraint::visit_greater_than_equal TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 126 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_greater_than_equal().

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

int TAO_Binary_Constraint::visit_in TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 190 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_in().

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

int TAO_Binary_Constraint::visit_less_than TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 102 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_less_than().

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

int TAO_Binary_Constraint::visit_less_than_equal TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 110 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_less_than_equal().

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

int TAO_Binary_Constraint::visit_mult TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 166 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_mult().

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

int TAO_Binary_Constraint::visit_not_equal TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 142 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_not_equal().

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

int TAO_Binary_Constraint::visit_or TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 86 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_or().

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

int TAO_Binary_Constraint::visit_sub TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 158 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_sub().

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

int TAO_Binary_Constraint::visit_twiddle TAO_Constraint_Visitor ,
TAO_Binary_Constraint
[static]
 

Definition at line 182 of file Constraint_Nodes.cpp.

References TAO_Constraint_Visitor::visit_twiddle().

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


Member Data Documentation

TAO_Constraint* TAO_Binary_Constraint::left_ [private]
 

The operands of the expression.

Definition at line 150 of file Constraint_Nodes.h.

TAO_Expression_Type TAO_Binary_Constraint::op_ [private]
 

The operator type.

Definition at line 147 of file Constraint_Nodes.h.

Referenced by accept().

TAO_Constraint* TAO_Binary_Constraint::right_ [private]
 

Definition at line 151 of file Constraint_Nodes.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 14:00:46 2006 for TAO_CosTrader by doxygen 1.3.6