Lire::Group(3) Base class for implementation of the group aggregator


use Lire::Group;


This module is the base class for implementation of the group aggregator. This aggregator will split the DLF records in groups having the same key. The key is made up of one or more several non-numerical fields. The number of keys to keep in the report can be configured through the limit attribute. The keys can also be sorted using the sort attribute.


new( %params )

Creates a new instance of a group aggregator. In addition to the normal report operator parameters, the limit attribute can be initialized at creation time.


limit( [$new_limit] )

Returns the number of keys to display in the report. This can be an integer or the name of one of the report specification parameter (when it starts by $).

The limit attribute can be changed by passing a $new_limit parameter.

sort_fields( [$new_sort_fields] )

Returns fields and/or operator values which are going to be used to sort the entries generated by this aggregator. This is an array reference containing group field names and/or operator's name.

The sorting fields can be changed by passing a new array reference.

group_fields( [$new_fields] )

Returns as a reference to an array of Lire::GroupField objects the DLF fields that are used to group the records.

If the $new_fields is set, the DLF fields used to group the records will be changed. This parameter should be a reference to an array of Lire::GroupField objects.


Recursive function that uses a binary search to insert $item in $array using $cmp as comparison operator. $first_idx and $max_idx specify the boundaries of the search. Search ends when $first_idx == $max_idx or when $sort_key sorts at or before $first_idx or at or after $max_idx


  Francis J. Lacoste <[email protected]>
  Wolfgang Sourdeau <[email protected]>


$Id:,v 1.36 2006/07/23 13:16:29 vanbaal Exp $


Copyright (C) 2001-2004 Stichting LogReport Foundation [email protected]

This file is part of Lire.

Lire is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program (see COPYING); if not, check with