NAME

Data::Range::Compare::Stream::Iterator::Consolidate - Consolidates overlapping and duplicate ranges

SYNOPSIS

use Data::Range::Compare::Stream;
use Data::Range::Compare::Stream::Iterator::Array;
use Data::Range::Compare::Stream::Iterator::Consolidate;

my $iterator=Data::Range::Compare::Stream::Iterator::Array->new(
  new_from=>'Data::Range::Compare::Stream',
);

# create a new range and add it to the iterator
$iterator->create_range(0,0);

my $range=Data::Range::Compare::Stream->new(0,1);

# add a new range from the existing one
$iterator->add_range($range);

$iterator->prepare_for_consolidate_asc;
my $processor=Data::Range::Compare::Stream::Iterator::Consolidate->new($iterator);

while($processor->has_next) {
  
  # Result objects are instances of: Data::Range::Compare::Stream::Iterator::Consolidate::Result
  my $result=$iterator->get_next;
}

DESCRIPTION

This module implements the consolidation engine for Data::Range::Compare::Stream.

Data::Range::Compare::Stream::Iterator::Consolidate can consolidate ranges sorted in the following order:

Consolidation Asc

  range_start asc,range_end desc

OO Methods

  • my $processor=new Data::Range::Compare::Stream::Iterator::Consolidate($iterator);

    Object constructor takes only one argument: $processor
    
      An $iterator object must implement Data::Range::Compare::Stream::Iterator::Base
    
       my $boolean=processor->has_next
    
         Boolean value indicating if there are any more ranges
    
       my $range=$processor->get_next;
    
         $range must impliment the interfaces of Data::Range::Compare::Stream
  • while($processor->has_next) { do something }

    Returns true when the there are more rangs to consolidate
  • my $range=$processor->get_next;

    if $processor->has_next returns true
      
      Returns a instance of Data::Range::Compare::Stream::Iterator::Consolidate::Result

SEE ALSO

Data::Range::Compare::Stream::Iterator::Consolidate::Result

Data::Range::Compare::Stream::Iterator::Base

Data::Range::Compare::Stream::Cookbook

AUTHOR

Michael Shipper

Source-Forge Project

As of version 0.001 the Project has been moved to Source-Forge.net

Data Range Compare https://sourceforge.net/projects/data-range-comp/

COPYRIGHT

Copyright 2011 Michael Shipper. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.