Argentum_02

node.cpp

Apr 9th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include "node.h"
  2.  
  3. bool EmptyNode::Evaluate(const Date &date,const std::string &event){
  4.     return true;
  5. }
  6.  
  7. bool DateComparisonNode::Evaluate(const Date &date,const std::string &event){
  8.     switch(Comp){
  9.     case Comparison::Equal:
  10.         return data == date;
  11.     case Comparison::Greater:
  12.         return date > data;
  13.     case Comparison::GreaterOrEqual:
  14.         return date >= data;
  15.     case Comparison::Less:
  16.         return date < data;
  17.     case Comparison::LessOrEqual:
  18.         return date <= data;
  19.     case Comparison::NotEqual:
  20.         return date != data;
  21.     }
  22.     return false;
  23. }
  24.  
  25. bool EventComparisonNode::Evaluate(const Date &date,const std::string &event){
  26.     switch(Comp){
  27.         case Comparison::Equal:
  28.             return event == Event;
  29.         case Comparison::Greater:
  30.             return event > Event;
  31.         case Comparison::GreaterOrEqual:
  32.             return event >= Event;
  33.         case Comparison::Less:
  34.             return event < Event;
  35.         case Comparison::LessOrEqual:
  36.             return event <= Event;
  37.         case Comparison::NotEqual:
  38.             return event != Event;
  39.         }
  40.         return false;
  41. }
  42.  
  43. bool LogicalOperationNode::Evaluate(const Date &date,const std::string &event){
  44.     return operation == LogicalOperation::And ? left->Evaluate(date,event) && right->Evaluate(date,event):
  45.                                 left->Evaluate(date,event) || right->Evaluate(date,event);
  46. }
Add Comment
Please, Sign In to add comment