visitor.reset();
visitor.setMetadata(metadata);
setTempMetadata(metadata, visitor, object);
PreOrderNavigator nav = new PreOrderNavigator(visitor) {
protected void visitNode(LanguageObject obj) {
QueryMetadataInterface previous = visitor.getMetadata();
setTempMetadata(metadata, visitor, obj);
super.visitNode(obj);