Javadoc
Visitor which traverses a filter tree while normalizing the branch node
order. Filter expressions can change the order of expressions in branch nodes
without effecting the logical meaning of the expression. This visitor orders
the children of expression tree branch nodes consistantly. It is really
useful for comparing expression trees which may be altered for performance or
altered because of codec idiosyncracies: for example the SNACC4J codec uses a
hashmap to store expressions in a sequence which rearranges the order of
children based on object hashcodes. We need this visitor to remove such
inconsitancies in order hence normalizing the branch node's child order.