MADARA  3.2.3
madara::expression::LeafNode Class Reference

Defines a node that contains a madara::knowledge::KnowledgeRecord::Integer value. More...

#include <LeafNode.h>

Inheritance diagram for madara::expression::LeafNode:
madara::expression::ComponentNode

Public Member Functions

 LeafNode (logger::Logger &logger, const knowledge::KnowledgeRecord &item)
 Constructor. More...
 
 LeafNode (logger::Logger &logger, madara::knowledge::KnowledgeRecord::Integer item)
 Integer Constructor. More...
 
 LeafNode (logger::Logger &logger, double item)
 Double Constructor. More...
 
 LeafNode (logger::Logger &logger, const std::string &item)
 String Constructor. More...
 
virtual ~LeafNode (void)
 Destructor. More...
 
virtual void accept (Visitor &visitor) const
 Accepts a visitor subclassed from the Visitor class. More...
 
virtual madara::knowledge::KnowledgeRecord evaluate (const madara::knowledge::KnowledgeUpdateSettings &settings)
 Evaluates the expression tree. More...
 
virtual madara::knowledge::KnowledgeRecord item (void) const
 Returns the printable value of the node. More...
 
virtual ComponentNodeleft (void) const
 Returns the left expression. More...
 
virtual madara::knowledge::KnowledgeRecord prune (bool &can_change)
 Prunes the expression tree of unnecessary nodes. More...
 
virtual ComponentNoderight (void) const
 Returns the right expression. More...
 
void set_logger (logger::Logger &logger)
 Sets the logger for printing errors and debugging info. More...
 

Protected Attributes

logger::Loggerlogger_
 handle the context More...
 

Private Attributes

madara::knowledge::KnowledgeRecord item_
 Integer value associated with the operand. More...
 

Detailed Description

Defines a node that contains a madara::knowledge::KnowledgeRecord::Integer value.

Definition at line 23 of file LeafNode.h.

Constructor & Destructor Documentation

madara::expression::LeafNode::LeafNode ( logger::Logger logger,
const knowledge::KnowledgeRecord item 
)

Constructor.

Parameters
loggerthe logger to use for printing
itemvalue of the node

Definition at line 16 of file LeafNode.cpp.

madara::expression::LeafNode::LeafNode ( logger::Logger logger,
madara::knowledge::KnowledgeRecord::Integer  item 
)

Integer Constructor.

Parameters
loggerthe logger to use for printing
itemvalue of the node

Definition at line 23 of file LeafNode.cpp.

madara::expression::LeafNode::LeafNode ( logger::Logger logger,
double  item 
)

Double Constructor.

Parameters
loggerthe logger to use for printing
itemvalue of the node

Definition at line 39 of file LeafNode.cpp.

madara::expression::LeafNode::LeafNode ( logger::Logger logger,
const std::string &  item 
)

String Constructor.

Parameters
loggerthe logger to use for printing
itemvalue of the node

Definition at line 31 of file LeafNode.cpp.

madara::expression::LeafNode::~LeafNode ( void  )
virtual

Destructor.

Definition at line 47 of file LeafNode.cpp.

Member Function Documentation

void madara::expression::LeafNode::accept ( Visitor visitor) const
virtual

Accepts a visitor subclassed from the Visitor class.

Parameters
visitorvisitor instance to use

Reimplemented from madara::expression::ComponentNode.

Definition at line 85 of file LeafNode.cpp.

madara::knowledge::KnowledgeRecord madara::expression::LeafNode::evaluate ( const madara::knowledge::KnowledgeUpdateSettings settings)
virtual

Evaluates the expression tree.

Evaluates the node and its children.

Returns
value of this node

This does not prune any of the expression tree, and is much faster than the prune function

Implements madara::expression::ComponentNode.

Definition at line 75 of file LeafNode.cpp.

madara::knowledge::KnowledgeRecord madara::expression::LeafNode::item ( void  ) const
virtual

Returns the printable value of the node.

Returns
value of the node

Reimplemented from madara::expression::ComponentNode.

Definition at line 53 of file LeafNode.cpp.

madara::expression::ComponentNode * madara::expression::ComponentNode::left ( void  ) const
virtualinherited

Returns the left expression.

Returns
a pointer to the left expression

Reimplemented in madara::expression::CompositeBinaryNode.

Definition at line 34 of file ComponentNode.cpp.

madara::knowledge::KnowledgeRecord madara::expression::LeafNode::prune ( bool &  can_change)
virtual

Prunes the expression tree of unnecessary nodes.

Prune the tree of unnecessary nodes.

Parameters
can_changeset to true if variable nodes are contained
Returns
value of this node

Returns evaluation of the node and sets can_change appropriately. if this node can be changed, that means it shouldn't be pruned.

Implements madara::expression::ComponentNode.

Definition at line 63 of file LeafNode.cpp.

madara::expression::ComponentNode * madara::expression::ComponentNode::right ( void  ) const
virtualinherited

Returns the right expression.

Returns
a pointer to the right expression

Reimplemented in madara::expression::CompositeUnaryNode.

Definition at line 41 of file ComponentNode.cpp.

void madara::expression::ComponentNode::set_logger ( logger::Logger logger)
inherited

Sets the logger for printing errors and debugging info.

Parameters
loggerthe logger to use

Definition at line 53 of file ComponentNode.cpp.

Member Data Documentation

madara::knowledge::KnowledgeRecord madara::expression::LeafNode::item_
private

Integer value associated with the operand.

Definition at line 91 of file LeafNode.h.

logger::Logger* madara::expression::ComponentNode::logger_
protectedinherited

handle the context

Definition at line 97 of file ComponentNode.h.


The documentation for this class was generated from the following files: