X-Git-Url: http://git.indexdata.com/?p=simpleserver-moved-to-github.git;a=blobdiff_plain;f=SimpleServer.pm;h=77ad19e1786cb81a9e1bcca7c2e368ddc7e416bf;hp=dff0f9c73a0059137b5b5543b135985d444c8191;hb=8a007211f150a8f0752a0226efb340ccbfdbdf6b;hpb=f13938aaeb456dc63ceb50a4f41e32e02d62459f diff --git a/SimpleServer.pm b/SimpleServer.pm index dff0f9c..77ad19e 100644 --- a/SimpleServer.pm +++ b/SimpleServer.pm @@ -114,12 +114,15 @@ package Net::Z3950::RPN::Or; our @ISA = qw(Net::Z3950::RPN::Node); package Net::Z3950::RPN::AndNot; our @ISA = qw(Net::Z3950::RPN::Node); +package Net::Z3950::RPN::Prox; +our @ISA = qw(Net::Z3950::RPN::Node); package Net::Z3950::RPN::Term; our @ISA = qw(Net::Z3950::RPN::Node); package Net::Z3950::RPN::RSID; our @ISA = qw(Net::Z3950::RPN::Node); package Net::Z3950::RPN::Attributes; package Net::Z3950::RPN::Attribute; +package Net::Z3950::RPN::Prox::Attributes; package Net::Z3950::FacetList; package Net::Z3950::FacetField; package Net::Z3950::FacetTerms; @@ -144,6 +147,9 @@ sub toPQF { return '@and ' . $this->[0]->toPQF() . ' ' . $this->[1]->toPQF(); } elsif ($class eq "Net::Z3950::RPN::AndNot") { return '@not ' . $this->[0]->toPQF() . ' ' . $this->[1]->toPQF(); + } elsif ($class eq "Net::Z3950::RPN::Prox") { + my $pattrs = $this->[3]; + return '@prox ' . $pattrs->{exclusion} . ' ' . $pattrs->{distance} . ' ' . $pattrs->{ordered} . ' ' . $pattrs->{relationType} . (defined $pattrs->{known} ? ' k ' . $pattrs->{known} : ' p ' . $pattrs->{zprivate}) . ' ' . $this->[0]->toPQF() . ' ' . $this->[1]->toPQF(); } elsif ($class eq "Net::Z3950::RPN::RSID") { return '@set ' . $this->{id}; } elsif ($class ne "Net::Z3950::RPN::Term") { @@ -904,7 +910,7 @@ http://search.cpan.org/~esummers/CQL-Parser/ =head1 AUTHORS -Anders Sønderberg (sondberg@indexdata.dk), +Anders Sønderberg (sondberg@indexdata.dk), Sebastian Hammer (quinn@indexdata.dk), Mike Taylor (indexdata.com).