22 #ifndef __M2ETIS_PUBSUB_FILTER_DECISIONTREEPREPROCESSVISITOR_H__
23 #define __M2ETIS_PUBSUB_FILTER_DECISIONTREEPREPROCESSVISITOR_H__
38 template<
typename EventType,
typename NetworkType>
39 class DecisionTreePreProcessVisitor :
public FilterVisitor<EventType> {
49 M2ETIS_THROW_API(
"DecisionTreeProcessVisitor",
"FilterExp not allowed in decision tree filter strategy.");
56 M2ETIS_THROW_API(
"DecisionTreeProcessVisitor",
"OrExp not allowed in decision tree filter strategy.");
62 attribute_type_information.decision_tree_node_ptr_ = current_decision_tree_node_ptr_;
66 current_decision_tree_node_ptr_ = attribute_type_information.decision_tree_node_ptr_;
71 attribute_type_information(filter, decision_tree_ptr);
72 delete decision_tree_ptr;
77 attribute_type_information(filter, decision_tree_ptr);
78 delete decision_tree_ptr;
84 return current_decision_tree_node_ptr_;
90 boost::shared_ptr<DecisionTreeNode<EventType, NetworkType> > * current_decision_tree_node_ptr_;
virtual void getAttributeType(const EqualsAttributeFilter< EventType, int > *filter)
virtual void Visit(const OrExp< EventType > *orexp) override
virtual void Visit(const FilterExp< EventType > *) override
virtual void Visit(const AndExp< EventType > *) override
virtual void getAttributeType(const EqualsAttributeFilter< EventType, std::string > *filter)
boost::shared_ptr< DecisionTreeNode< EventType, NetworkType > > * get_current_decision_tree_node_ptr()
virtual ~DecisionTreePreProcessVisitor()
DecisionTreePreProcessVisitor(boost::shared_ptr< DecisionTreeNode< EventType, NetworkType > > *v)
#define M2ETIS_THROW_API(module, message)
throws on wrong API usage
virtual void getAttributeType(FilterVisitor< EventType > &visitor) const =0
virtual void Visit(const Predicate< EventType > *equals_predicate) override