The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::SQLEngine::RecordSet::Set - Array of Record Objects

SYNOPSIS

  use DBIx::SQLEngine::RecordSet::Set;

  $record_set = DBIx::SQLEngine::RecordSet::Set->new( @records );

  $record_set = $record_class->fetch_select( criteria => { status => 2 } );
  
  print "Found " . $record_set->count() . " records";

  $record_set->filter( { 'status' => 'New' } );
  $record_set->sort( 'creation_date' );
  
  foreach ( 0 .. $record_set->count() ) { 
    print $record_set->record( $_ )->name();
  }
  
  foreach ( $record_set->range_records( 11, 20 ) ) { 
    print $_->name();
  }

DESCRIPTION

This package is not yet complete.

The base implementation of RecordSet is an array of Record references.

Constructor

new()
  $class->new ( @records ) : $recordset

Array constructor.

clone()
  $recordset->clone() : $recordset

Create a shallow copy of the record set.

Contents

init()
  $recordset->init ( @records ) 

Array content setter.

records()
  $rs->records() : @records

Array content accessor.

Positional Access

count()
  $count = $rs->count();

Returns the number of records in this set.

record()
  $record = $rs->record( $position );

Return the record in the indicated position in the array. Returns nothing if position is undefined.

Indexes start with zero. Negative indexes are counted back from the end, with -1 being the last, -2 being the one before that, and so forth.

last_record
  $record = $rs->last_record();

Return the last record in the array.

Positional Subsets

range_set()
  $clone = $rs->range_set( $start_pos, $stop_pos );

Return a copy of the current set containing only those records at or between the start and stop positions.

range_records()
  @records = $rs->range_records( $start_pos, $stop_pos );

Return the records at or between the start and stop positions.

Sorting

Use of these methods requires the Data::Sorting module from CPAN.

See Data::Sorting for more information.

sort()
  $rs->sort( @fieldnames );

Sort the contents of the set.

sorted_set()
  $clone = $rs->sorted_set( @fieldnames );

Return a sorted copy of the current set.

sorted_records()
  @records = $rs->sorted_records( @fieldnames );

Return the records from the current set, in sorted order.

Criteria Matching

Caution: This set of methods is currently not working.

filter()
  $rs->filter( $criteria );

Remove non-matching records from the set.

filtered_set()
  $clone = $rs->filtered_set( $criteria );

Return a set containing only the matching records from the current set.

filtered_records()
  @records = $rs->filtered_records( $criteria );

Return the matching records from the current set.

SEE ALSO

See DBIx::SQLEngine for the overall interface and developer documentation.

See DBIx::SQLEngine::Docs::ReadMe for general information about this distribution, including installation and license information.