4 #ifndef FIRE_FILTER_HPP_INCLUDED
5 #define FIRE_FILTER_HPP_INCLUDED
9 #include "fire/Object.hpp"
10 #include "fire/LogicOperator.hpp"
50 this->logicOperator = fire::LogicOperator::None;
51 this->leftFilter = NULL;
52 this->rightFilter = NULL;
53 }
catch (
const std::exception& exception) {
63 }
catch (
const std::exception& exception) {
81 }
catch (
const std::exception& exception) {
100 switch (this->logicOperator) {
101 case fire::LogicOperator::None: {
104 case fire::LogicOperator::Not: {
105 value = !this->leftFilter->expression(
object);
108 case fire::LogicOperator::And: {
109 value = this->leftFilter->expression(
object) && this->rightFilter->expression(
object);
112 case fire::LogicOperator::Or: {
113 value = this->leftFilter->expression(
object) || this->rightFilter->expression(
object);
117 }
catch (
const std::exception& exception) {
132 value.logicOperator = fire::LogicOperator::Not;
133 value.leftFilter =
this;
134 }
catch (
const std::exception& exception) {
152 value.logicOperator = fire::LogicOperator::And;
153 value.leftFilter =
this;
154 value.rightFilter = &filter;
155 }
catch (
const std::exception& exception) {
173 value.logicOperator = fire::LogicOperator::Or;
174 value.leftFilter =
this;
175 value.rightFilter = &filter;
176 }
catch (
const std::exception& exception) {
192 }
catch (
const std::exception& exception) {
210 value = this->
AND(filter);
211 }
catch (
const std::exception& exception) {
229 value = this->
OR(filter);
230 }
catch (
const std::exception& exception) {
bool expression(T object)
Restituisce l'indicazione se un oggetto generico soddisfa l'espressione del filtro.
Definition: Filter.hpp:96
Classe per la gestione di un oggetto.
Definition: Object.hpp:29
fire::Filter< T > AND(fire::Filter< T > &filter)
Restituisce un filtro dato dall'applicazione sul filtro dell'operatore logico AND con un altro filtro...
Definition: Filter.hpp:149
virtual bool condition(T object)
Restituisce l'indicazione se un oggetto generico soddisfa la condizione del filtro.
Definition: Filter.hpp:77
virtual ~Filter()
Distruttore.
Definition: Filter.hpp:61
fire::Filter< T > operator&&(fire::Filter< T > &filter)
Operatore logico AND.
Definition: Filter.hpp:207
fire::Filter< T > OR(fire::Filter< T > &filter)
Restituisce un filtro dato dall'applicazione sul filtro dell'operatore logico OR con un altro filtro...
Definition: Filter.hpp:170
Classe per la gestione di un filtro.
Definition: Filter.hpp:25
fire::Filter< T > NOT()
Restituisce un filtro dato dall'applicazione sul filtro dell'operatore logico NOT.
Definition: Filter.hpp:129
Filter()
Costruttore.
Definition: Filter.hpp:48
fire::Filter< T > operator!()
Operatore logico NOT.
Definition: Filter.hpp:188
LogicOperator
Enumerativo per la gestione di un operatore logico.
Definition: LogicOperator.hpp:21
fire::Filter< T > operator||(fire::Filter< T > &filter)
Operatore logico OR.
Definition: Filter.hpp:226