quality _util package and return lots more config data
authorLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fri, 26 Aug 2011 17:39:14 +0000 (13:39 -0400)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Thu, 29 Dec 2011 17:04:03 +0000 (12:04 -0500)
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm

index 6ce70c7..e36d261 100644 (file)
@@ -763,7 +763,7 @@ sub superpage_size {
 
 
 #-------------------------------
-package _util;
+package QueryParser::_util;
 
 # At this level, joiners are always & or |.  This is not
 # the external, configurable representation of joiners that
@@ -1027,6 +1027,8 @@ sub to_abstract_query {
     my $self = shift;
     my %opts = @_;
 
+    my $pkg = ref $self->QueryParser || $self->QueryParser;
+
     my $abstract_query = {
         type => "query_plan",
         filters => [map { $_->to_abstract_query } @{$self->filters}],
@@ -1035,7 +1037,7 @@ sub to_abstract_query {
 
     if ($opts{with_config}) {
         $opts{with_config} = 0;
-        $abstract_query->{config} = $QueryParser::parser_config{QueryParser};
+        $abstract_query->{config} = $QueryParser::parser_config{$pkg};
     }
 
     my $kids = [];
@@ -1043,7 +1045,7 @@ sub to_abstract_query {
     for my $qnode (@{$self->query_nodes}) {
         # Remember: qnode can be a joiner string, a node, or another query_plan
 
-        if (_util::is_joiner($qnode)) {
+        if (QueryParser::_util::is_joiner($qnode)) {
             if ($abstract_query->{children}) {
                 my $open_joiner = (keys(%{$abstract_query->{children}}))[0];
                 next if $open_joiner eq $qnode;
@@ -1059,7 +1061,7 @@ sub to_abstract_query {
         }
     }
 
-    $abstract_query->{children} ||= { _util::default_joiner() => $kids };
+    $abstract_query->{children} ||= { QueryParser::_util::default_joiner() => $kids };
     return $abstract_query;
 }
 
@@ -1210,7 +1212,7 @@ sub replace_phrase_in_abstract_query {
     for (my $i = 0; $i < scalar (@$long_list); $i++) {
         my $right = $long_list->[$i];
 
-        if (_util::compare_abstract_atoms(
+        if (QueryParser::_util::compare_abstract_atoms(
             $short_list->[scalar @already], $right
         )) {
             push @already, $i;
@@ -1233,6 +1235,8 @@ sub to_abstract_query {
     my $self = shift;
     my %opts = @_;
 
+    my $pkg = ref $self->plan->QueryParser || $self->plan->QueryParser;
+
     my $abstract_query = {
         "type" => "node",
         "class" => $self->classname,
@@ -1242,7 +1246,7 @@ sub to_abstract_query {
     my $kids = [];
 
     for my $qatom (@{$self->query_atoms}) {
-        if (_util::is_joiner($qatom)) {
+        if (QueryParser::_util::is_joiner($qatom)) {
             if ($abstract_query->{children}) {
                 my $open_joiner = (keys(%{$abstract_query->{children}}))[0];
                 next if $open_joiner eq $qatom;
@@ -1282,12 +1286,12 @@ sub to_abstract_query {
                     next if $@;
 
                     foreach (
-                        _util::find_arrays_in_abstract($abstract_query->{children})
+                        QueryParser::_util::find_arrays_in_abstract($abstract_query->{children})
                     ) {
                         last if $self->replace_phrase_in_abstract_query(
                             $tmplist,
                             $_,
-                            _util::fake_abstract_atom_from_phrase($phrase)
+                            QueryParser::_util::fake_abstract_atom_from_phrase($phrase)
                         );
                     }
                 }
@@ -1299,7 +1303,7 @@ sub to_abstract_query {
     if ($self->{unphrases} and not $opts{no_phrases}) {
         for my $phrase (@{$self->{unphrases}}) {
             my $tmptree = $self->{plan}->{QueryParser}->new(
-                query => $QueryParser::parser_config{QueryParser}{operators}{disallowed}.
+                query => $QueryParser::parser_config{$pkg}{operators}{disallowed}.
                     '"' . $phrase . '"'
             )->parse->parse_tree;
 
@@ -1315,12 +1319,12 @@ sub to_abstract_query {
                     next if $@;
 
                     foreach (
-                        _util::find_arrays_in_abstract($abstract_query->{children})
+                        QueryParser::_util::find_arrays_in_abstract($abstract_query->{children})
                     ) {
                         last if $self->replace_phrase_in_abstract_query(
                             $tmplist,
                             $_,
-                            _util::fake_abstract_atom_from_phrase($phrase, 1)
+                            QueryParser::_util::fake_abstract_atom_from_phrase($phrase, 1)
                         );
                     }
                 }
@@ -1328,7 +1332,7 @@ sub to_abstract_query {
         }
     }
 
-    $abstract_query->{children} ||= { _util::default_joiner() => $kids };
+    $abstract_query->{children} ||= { QueryParser::_util::default_joiner() => $kids };
     return $abstract_query;
 }