private function _rewrite_parsed_query($meta, $tree)
 {
     // apply query adaptor if specified
     if (isset($meta['adaptor'])) {
         $adaptor = new ParsedQueryAdaptor();
         $converted_tree = $adaptor->convert($tree, $meta['adaptor'], @$meta['search']['index']);
         // 'ignored' searches not currently handled (this was a fed requirement)
         if (!is_null($converted_tree)) {
             $tree = $converted_tree;
             $this->log(4, "Converted Search: " . @$meta['_table'] . $converted_tree->to_string());
         }
     }
     return $tree;
 }
 protected function _modify_query($query_string, $comp, $tree)
 {
     // use query adaptor if available
     if (isset($comp['adaptor'])) {
         $adaptor = new ParsedQueryAdaptor();
         $tmp_meta = $comp['ds']->_get_meta($comp['table']);
         $converted_tree = $adaptor->convert($tree, $comp['adaptor'], @$tmp_meta['search']['index']);
         // if the converted tree is null, do not search this module
         if (is_null($converted_tree)) {
             return NULL;
         }
         $query_string = $converted_tree->to_string();
     }
     // Additional query parts
     if (@$comp['query_add']) {
         $query_string .= '(' . $comp['query_add'] . ')';
     }
     return $query_string;
 }