1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
package HTTP::OAI::PartialList;
@ISA = qw( HTTP::OAI::Verb );
use strict;
sub resumptionToken { shift->_elem('resumptionToken',@_) }
sub item { shift->_multi('item',@_) }
sub next
{
my( $self ) = @_;
return shift @{$self->{item}};
}
sub generate_body
{
my( $self, $driver ) = @_;
for($self->item)
{
$_->generate( $driver );
}
if(my $token = $self->resumptionToken)
{
$token->generate( $driver );
}
}
sub start_element
{
my ($self, $hash, $r) = @_;
if( $hash->{Depth} == 3 && $hash->{LocalName} eq "resumptionToken" )
{
$self->set_handler(HTTP::OAI::ResumptionToken->new);
}
$self->SUPER::start_element( $hash, $r );
}
sub end_element
{
my ($self, $hash, $r) = @_;
$self->SUPER::end_element( $hash, $r );
if( $hash->{Depth} == 3 && $hash->{LocalName} eq "resumptionToken" )
{
$self->resumptionToken( $self->get_handler );
$self->set_handler( undef );
}
}
1;
|