package SRU::Request::Scan;
use strict;
use warnings;
use base qw( Class::Accessor SRU::Request );
use SRU::Utils qw( error );
=head1 NAME
SRU::Request::Scan - A class for representing SRU scan requests
=head1 SYNOPSIS
## creating a new request
my $request = SRU::Request::Scan->new();
=head1 DESCRIPTION
SRU::Request::Scan is a class for representing SRU 'scan' requests.
=head1 METHODS
=head2 new()
The constructor, which you can pass the parameters: version, scanClause
responsePosition, maximumTerms, stylesheet, extraRequestData.
my $request = SRU::Request::Explain->new(
version => '1.1',
scanClause => 'horses',
);
=cut
sub new {
my ($class,%args) = @_;
return $class->SUPER::new( \%args );
}
=head2 version()
=head2 scanClause()
=head2 responsePosition()
=head2 maximumTerms()
=head2 stylesheet()
=head2 extraRequestData()
=cut
my @validParams = qw(
version
scanClause
responsePosition
maximumTerms
stylesheet
extraRequestData
);
=head2 validParams()
=cut
sub validParams { return @validParams; }
SRU::Request::Scan->mk_accessors( @validParams );
=head2 cql()
Fetch the root node of the CQL parse tree for the scan clause.
=cut
sub cql {
my $self = shift;
my $clause = $self->scanClause();
return '' unless $clause;
my $node;
my $parser = CQL::Parser->new();
eval { $node = $parser->parse( $clause ) };
return $node;
}
1;