From: Lebbeous Fogle-Weekley Date: Fri, 26 Aug 2011 17:39:14 +0000 (-0400) Subject: quality _util package and return lots more config data X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a21585228fb75a8e4243fb0301fc611f57be6b31;p=evergreen%2Fequinox.git quality _util package and return lots more config data Signed-off-by: Lebbeous Fogle-Weekley --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm index 6ce70c7494..e36d261b7f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm @@ -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; }