It's a personal taste, but I'm not sure I like all those permutations in combined values. Perhaps you'll consider that the evaluator would return an object with two enums:
1. STOP / CONTINUE 2. INCLUDE / EXCLUDE This will also make it easier to extend the evaluator, so if additional state is needed to be returned, you just add another enum and don't have to change all the existing values.. Hope this makes sense. --- Yaniv On Fri, Nov 5, 2010 at 8:56 PM, David Montag <david.mon...@neotechnology.com > wrote: > Hi all, > > Hopefully most of you are familiar with the traversal framework that was > introduced in 1.1. It's powerful and provides for reusable traversal > descriptions. It has some flaws though, and I would like to discuss one of > them here. > > The traversal framework has this concept of pruning, which basically is an > evaluation for each position, deciding whether or not to continue the > traversal down this branch. The caveat here is that when you evaluate a > position, you can't opt to prune before it. If you want to exclude a node > based on information from that node, filtering has to be done on top of the > pruning, with the same algorithm - once to stop the traversal, and once to > exclude the node. > > So there are actually two orthogonal concepts at work here: whether to stop > or not, and whether to include or not. What I'm proposing is to merge these > two into one evaluator. That evaluator would return one of four values: > > CONTINUE_AND_INCLUDE_NODE, > STOP_AND_INCLUDE_NODE, > STOP_AND_EXCLUDE_NODE, or > CONTINUE_AND_EXCLUDE_NODE. > > This would replace both the filtering and the pruning. I'm just throwing > this out there to see if anyone else has had the same idea. Like / dislike? > > -- > David Montag > Neo Technology, www.neotechnology.com > Cell: 650.556.4411 > david.mon...@neotechnology.com > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user