package Xmldoom::ResultSet;
use strict;
sub new
{
my $class = shift;
my $args = shift;
my $class_name;
my $result;
my $conn;
my $parent;
if ( ref($args) eq 'HASH' )
{
$class_name = $args->{class};
$result = $args->{result};
$conn = $args->{conn};
$parent = $args->{parent};
}
else
{
$class_name = $args;
$result = shift;
$conn = shift;
$parent = shift;
}
my $self = {
class => $class_name,
result => $result,
conn => $conn,
parent => $parent,
};
bless $self, $class;
return $self;
}
sub next
{
my $self = shift;
if ( not $self->{result}->next() )
{
if ( $self->{conn} )
{
$self->{conn}->disconnect();
$self->{conn} = undef;
}
return 0;
}
return 1;
}
sub get_object
{
my $self = shift;
# create our object
return $self->{class}->new(undef, {
data => $self->{result}->get_row(),
parent => $self->{parent}
});
}
sub DESTROY
{
my $self = shift;
if ( $self->{conn} )
{
$self->{conn}->disconnect();
$self->{conn} = undef;
}
}
1;