MADARA
3.1.8
|
Implementation of a factory pattern that dynamically allocates the appropriate ExpressionTreeIteratorImpl object. More...
Public Member Functions | |
ExpressionTreeIteratorFactory (void) | |
Constructor. More... | |
ExpressionTreeIteratorImpl * | make_tree_iterator (ExpressionTree &tree, const std::string &traversal_order, bool end_iter) |
Dynamically allocate a new ExpressionTreeIteratorImpl object based on the designated traversal_order and end_iter. More... | |
Private Types | |
typedef ::std::map< std::string, TRAVERSAL_PTMF > | TRAVERSAL_MAP |
typedef ExpressionTreeIteratorImpl *(ExpressionTreeIteratorFactory::* | TRAVERSAL_PTMF) (ExpressionTree &tree, bool end_iter) |
Private Member Functions | |
ExpressionTreeIteratorImpl * | make_in_order_tree_iterator (ExpressionTree &tree, bool end_iter) |
Dynamically allocate a new ExpressionTreeLevelOrderIteratorImpl object based on the designated end_iter. More... | |
ExpressionTreeIteratorImpl * | make_level_order_tree_iterator (ExpressionTree &tree, bool end_iter) |
Dynamically allocate a new ExpressionTreeLevelOrderIteratorImpl object based on the designated end_iter. More... | |
ExpressionTreeIteratorImpl * | make_post_order_tree_iterator (ExpressionTree &tree, bool end_iter) |
Dynamically allocate a new ExpressionTreePostOrderIteratorImpl object based on the designated end_iter. More... | |
ExpressionTreeIteratorImpl * | make_pre_order_tree_iterator (ExpressionTree &tree, bool end_iter) |
Dynamically allocate a new ExpressionTreePreOrderIteratorImpl object based on the designated end_iter. More... | |
Private Attributes | |
TRAVERSAL_MAP | traversal_map_ |
Implementation of a factory pattern that dynamically allocates the appropriate ExpressionTreeIteratorImpl object.
This is a variant of the Abstract Factory pattern that has a set of related factory methods but which doesn't use inheritance.
Definition at line 49 of file ExpressionTree.cpp.
|
private |
Definition at line 84 of file ExpressionTree.cpp.
|
private |
Definition at line 83 of file ExpressionTree.cpp.
madara::expression::ExpressionTreeIteratorFactory::ExpressionTreeIteratorFactory | ( | void | ) |
Constructor.
Definition at line 91 of file ExpressionTree.cpp.
|
private |
Dynamically allocate a new ExpressionTreeLevelOrderIteratorImpl object based on the designated end_iter.
Definition at line 111 of file ExpressionTree.cpp.
|
private |
Dynamically allocate a new ExpressionTreeLevelOrderIteratorImpl object based on the designated end_iter.
Definition at line 104 of file ExpressionTree.cpp.
|
private |
Dynamically allocate a new ExpressionTreePostOrderIteratorImpl object based on the designated end_iter.
Definition at line 125 of file ExpressionTree.cpp.
|
private |
Dynamically allocate a new ExpressionTreePreOrderIteratorImpl object based on the designated end_iter.
Definition at line 118 of file ExpressionTree.cpp.
madara::expression::ExpressionTreeIteratorImpl * madara::expression::ExpressionTreeIteratorFactory::make_tree_iterator | ( | ExpressionTree & | tree, |
const std::string & | traversal_order, | ||
bool | end_iter | ||
) |
Dynamically allocate a new ExpressionTreeIteratorImpl object based on the designated traversal_order and end_iter.
Definition at line 132 of file ExpressionTree.cpp.
|
private |
Definition at line 86 of file ExpressionTree.cpp.