Forest::Tree::Indexer::SimpleUIDIndexer - Indexes a Forest::Tree heiarchy by it's UID


Forest documentation Contained in the Forest distribution.

Index


Code Index:

NAME

Top

Forest::Tree::Indexer::SimpleUIDIndexer - Indexes a Forest::Tree heiarchy by it's UID

DESCRIPTION

Top

This creates an index of a Forest::Tree heiarchy using the UID as the key.

METHODS

Top

build_index

BUGS

Top

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

AUTHOR

Top

Stevan Little <stevan.little@iinteractive.com>

COPYRIGHT AND LICENSE

Top


Forest documentation Contained in the Forest distribution.

package Forest::Tree::Indexer::SimpleUIDIndexer;
use Moose;

our $VERSION   = '0.09';
our $AUTHORITY = 'cpan:STEVAN';

with 'Forest::Tree::Indexer';

sub build_index {
    my $self  = shift;
    my $root  = $self->get_root;
    my $index = $self->index;

    (!exists $index->{$root->uid})
        || confess "Tree root has already been indexed, you must clear it before re-indexing";

    $index->{$root->uid} = $root;

    $root->traverse(sub {
        my $t = shift;
        (!exists $index->{$t->uid})
            || confess "Duplicate tree id (" . $t->uid . ") found";
        $index->{$t->uid} = $t;
    });

};

__PACKAGE__->meta->make_immutable;

no Moose; 1;

__END__