TFBS
_Iterator
No package variables defined. |
_reverse | No description | Code |
_sort | No description | Code |
current | No description | Code |
new | No description | Code |
next | No description | Code |
reset | No description | Code |
Methods description
Methods code
sub _reverse
{ my $self = shift;
$self->{'_iterator_array_ref'} =
[ reverse @{ $self->{'_iterator_array_ref'} } ];
}
sub _sort
{ my ($self, $sort_by) = @_;
$self->throw("Generic iterator cannot sort ".ref($self).
" object by '$sort_by'.");
}
sub current
{}
sub new
{ my ($caller, $arrayref, $sort_by, $reverse) = @_;
my $class = ref $caller || $caller;
my $self;
if ($arrayref) {
$self = bless { _orig_array_ref => [ @$arrayref ],
_iterator_array_ref => [ @$arrayref ],
_sort_by => ($sort_by || undef),
_reverse => ($reverse || 0)
},
$class;
}
else {
croak("No valid array ref for Iterator of ".
(ref($class) || $class)." provided:");
}
$self->_sort() if $sort_by;
$self->_reverse() if $reverse;
return $self;
}
sub next
{ my $self = shift;
return shift @{$self->{_iterator_array_ref}};
}
sub reset
{ my ($self) = @_;
@{$self->{_iterator_array_ref}} = @{$self->{_orig_array_ref}};
$self->_sort() if $self->{'_sort_by'};
$self->_reverse() if $self->{'reverse'};
return $self;
}
General documentation
No general documentation available.