public Iterator < Operator < Tree < E > > > validOperators ( boolean reverse ) { /*log.fine("public Iterator<Operator> validOperators(): called");*/ // Check if the tree is a leaf and return an empty iterator if so. if ( tree . isLeaf ( ) ) { /*log.fine("is leaf");*/ return new ArrayList < Operator < Tree < E > > > ( ) . iterator ( ) ; } // Generate an iterator over the child trees of the current node, encapsulating them as operators. else { /*log.fine("is node");*/ Tree . Node < E > node = tree . getAsNode ( ) ; return new TreeSearchOperatorIterator < E > ( node . getChildIterator ( ) ) ; } }
Gets all operators valid from this state . If the current tree to search has any children these are encoded as operators to access those child trees as tree search states . If the current tree is a leaf then an empty iterator is returned .