| WebService-Lucene documentation | Contained in the WebService-Lucene distribution. |
WebService::Lucene::Iterator - Iterator for lazy document inflation
use WebService::Lucene::Iterator;
my $iterator = WebService::Lucene::Iterator->new( $documents );
All search results are returned as XML::Atom::Entry objects which get inflated to WebService::Lucene::Document objects. This module allows us to delay that inflation as late as possible.
Generates a new iterator that will iterate through
$documents as requested.
Accessor for the iterator closure.
Inflates and returns the next document object.
Copyright 2006-2009 National Adult Literacy Database
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| WebService-Lucene documentation | Contained in the WebService-Lucene distribution. |
package WebService::Lucene::Iterator; use strict; use warnings; use base qw( Class::Accessor::Fast ); use WebService::Lucene::Document; __PACKAGE__->mk_accessors( qw( iterator ) );
sub new { my ( $class, $documents ) = @_; my $self = $class->SUPER::new; my $index = 0; $self->iterator( sub { my $document = $documents->[ $index ]; return undef unless $document; $index++; return WebService::Lucene::Document->new_from_entry( $document ); } ); return $self; }
sub next { return shift->iterator->(); }
1;