HTTP::OAI::ListMetadataFormats - Provide access to an OAI ListMetadataFormats response


HTTP-OAI documentation Contained in the HTTP-OAI distribution.

Index


Code Index:

NAME

Top

HTTP::OAI::ListMetadataFormats - Provide access to an OAI ListMetadataFormats response

SYNOPSIS

Top

	my $r = $h->ListMetadataFormats;

	# ListMetadataFormats doesn't use flow control
	while( my $rec = $r->next ) {
		print $rec->metadataPrefix, "\n";
	}

	die $r->message if $r->is_error;

METHODS

Top

$lmdf = new HTTP::OAI::ListMetadataFormats

This constructor method returns a new HTTP::OAI::ListMetadataFormats object.

$mdf = $lmdf->next

Returns either an HTTP::OAI::MetadataFormat object, or undef, if no more records are available.

@mdfl = $lmdf->metadataFormat([$mdf])

Returns the metadataFormat list and optionally adds a new metadataFormat, $mdf. Returns an array ref of HTTP::OAI::MetadataFormats.

$dom = $lmdf->toDOM

Returns a XML::DOM object representing the ListMetadataFormats response.


HTTP-OAI documentation Contained in the HTTP-OAI distribution.

package HTTP::OAI::ListMetadataFormats;

use strict;
use warnings;

use vars qw( @ISA );

@ISA = qw( HTTP::OAI::Response );

sub new {
	my $class = shift;
	my $self = $class->SUPER::new(@_);
	$self->{'metadataFormat'} ||= [];
	$self->verb('ListMetadataFormats') unless $self->verb;

	$self;
}

sub metadataFormat {
	my $self = shift;
	push(@{$self->{metadataformat}}, @_);
	return wantarray ?
		@{$self->{metadataformat}} :
		$self->{metadataformat}->[0];
}

sub next { shift @{shift->{metadataformat}} }

sub generate_body {
	my ($self) = @_;
	return unless defined(my $handler = $self->get_handler);

	for( $self->metadataFormat ) {
		$_->set_handler($handler);
		$_->generate;
	}
}

sub start_element {
	my ($self,$hash) = @_;
	if( lc($hash->{LocalName}) eq 'metadataformat' ) {
		my $mdf = new HTTP::OAI::MetadataFormat();
		$self->metadataFormat($mdf);
		$self->set_handler($mdf);
	}
	$self->SUPER::start_element($hash);
}

1;

__END__