From 1677fd4ce233febc00813d1f9385316579c35cb2 Mon Sep 17 00:00:00 2001 From: Adam Wardynski <award@.(B-4.4.46a)> Date: Fri, 19 Nov 2010 19:11:26 +0100 Subject: [PATCH] Helper static method Predicate::evaluate --- libwccl/ops/intersects.h | 5 +---- libwccl/ops/isinside.h | 5 +---- libwccl/ops/isoutside.h | 5 +---- libwccl/ops/issubsetof.h | 7 +++---- libwccl/ops/predicate.cpp | 5 +++++ libwccl/ops/predicate.h | 4 ++++ 6 files changed, 15 insertions(+), 16 deletions(-) diff --git a/libwccl/ops/intersects.h b/libwccl/ops/intersects.h index ad4716d..39ed272 100644 --- a/libwccl/ops/intersects.h +++ b/libwccl/ops/intersects.h @@ -29,10 +29,7 @@ protected: virtual BaseRetValPtr apply_internal(const FunExecContext& context) const { boost::shared_ptr<T> set1 = this->set1_expr_->apply(context); boost::shared_ptr<T> set2 = this->set2_expr_->apply(context); - if(set1->is_subset_of(*set2)) { - return Predicate::True(context); - } - return Predicate::False(context); + return Predicate::evaluate(set1->intersects(*set2), context); } }; diff --git a/libwccl/ops/isinside.h b/libwccl/ops/isinside.h index 1a3339d..0acbb86 100644 --- a/libwccl/ops/isinside.h +++ b/libwccl/ops/isinside.h @@ -42,10 +42,7 @@ protected: */ virtual BaseRetValPtr apply_internal(const FunExecContext& context) const { const boost::shared_ptr<const Position>& pos = pos_expr_->apply(context); - if(pos->is_inside(context.sentence_context())) { - return Predicate::True(context); - } - return Predicate::False(context); + return Predicate::evaluate(pos->is_inside(context.sentence_context()), context); } }; diff --git a/libwccl/ops/isoutside.h b/libwccl/ops/isoutside.h index cf74440..f32591d 100644 --- a/libwccl/ops/isoutside.h +++ b/libwccl/ops/isoutside.h @@ -42,10 +42,7 @@ protected: */ virtual BaseRetValPtr apply_internal(const FunExecContext& context) const { const boost::shared_ptr<const Position>& pos = pos_expr_->apply(context); - if(pos->is_outside(context.sentence_context())) { - return Predicate::True(context); - } - return Predicate::False(context); + return Predicate::evaluate(pos->is_outside(context.sentence_context()), context); } }; diff --git a/libwccl/ops/issubsetof.h b/libwccl/ops/issubsetof.h index a16622c..0fd276f 100644 --- a/libwccl/ops/issubsetof.h +++ b/libwccl/ops/issubsetof.h @@ -32,11 +32,10 @@ protected: */ virtual BaseRetValPtr apply_internal(const FunExecContext& context) const { boost::shared_ptr<T> possible_subset = this->set1_expr_->apply(context); - if(!possible_subset->empty()) { + if(!possible_subset->empty()) + { boost::shared_ptr<T> set_compared_to = this->set2_expr_->apply(context); - if(possible_subset->is_subset_of(*set_compared_to)) { - return Predicate::True(context); - } + return Predicate::evaluate(possible_subset->is_subset_of(*set_compared_to), context); } return Predicate::False(context); } diff --git a/libwccl/ops/predicate.cpp b/libwccl/ops/predicate.cpp index 57d5ee1..e3d7b7f 100644 --- a/libwccl/ops/predicate.cpp +++ b/libwccl/ops/predicate.cpp @@ -14,4 +14,9 @@ Predicate::RetValPtr Predicate::False(const FunExecContext& context) return false_constant.apply(context); } +Predicate::RetValPtr Predicate::evaluate(bool condition, const FunExecContext &context) +{ + return condition ? True(context) : False(context); +} + } /* end ns Wccl */ diff --git a/libwccl/ops/predicate.h b/libwccl/ops/predicate.h index e6176ff..a569b4e 100644 --- a/libwccl/ops/predicate.h +++ b/libwccl/ops/predicate.h @@ -21,6 +21,10 @@ public: * Helper function returing False, to use by predicates when returning value */ static RetValPtr False(const FunExecContext& context); + /** + * Helper function returing True or False depending on condition + */ + static RetValPtr evaluate(bool condition, const FunExecContext& context); }; } /* end ns Wccl */ -- GitLab