Provided by: lire-devel-doc_2.1.1-2.1_all bug

NAME

       Lire::Group - Base class for implementation of the rangegroup aggregator

SYNOPSIS

           use Lire::Rangegroup;

DESCRIPTION

       This module is the base class for implementation of the rangegroup aggregator. This
       aggregator will split the DLF records based on a numerical field. The so-called range
       groups creates numerical classes (e.g. 1-10, 11-20, etc.) and the DLF record will be
       grouped with other records which are in the same class.

CONSTRUCTOR

   new( %params )
       Creates a new instance of a group aggregator. In addition to the normal report operator
       parameters, the rangegroup aggregator can take several parameters:

       field
           This parameter is mandatory. It should be the name of the DLF field which will be used
           as key for this aggregator.

       range-size
           This parameter is mandatory. This will be used as the size of each range group.

       range-start
           The number at which the first range group starts. Defauls to 0.

       min-value
           Value lower than this number will be sorted in the first range group.

       max-value
           Value higher than this number will be sorted in the last range group.

       size-scale
           This parameter can be used to create a logarithmic scale. In this case, each new range
           group will be size-scale bigger than the one that comes before it. For example,
           setting range-size=5 and size-scale=2 will create ranges like [0-5>, [5-15>, [15-35>,
           ...

METHODS

   field( [$new_field] )
       Returns the name of the DLF field which is used as grouping key.

       If the $new_field parameter is set, it changes the grouping field.  This must be the name
       of a quantity type field in the report specifications DLF schema.

   range_start( [$new_start] )
       Returns the number which is the starting bound of the first range group.

       If the $new_start parameter is set, it changes the starting bound of the first range
       group. This should either be a positive integer or the name of one of the report
       specification's parameter.

   range_size( [$new_size] )
       Returns the width of each range group.

       If the $new_size parameter is set, it changes the width of each range group. This should
       either be a positive integer or the name of one of the report specification's parameter.

   min_value( [$new_min] )
       Returns the number below which no new range groups will be created.

       If the $new_min is set, it changes the lower bound below which no new groups will be
       created. This should either be a number or the name of one of the report specification's
       parameter.

   max_value( [$new_max] )
       Returns the number above which no new range groups will be created.

       If the $new_max is set, it changes the upper bound above which no new groups will be
       created. This should either be a number or the name of one of the report specification's
       parameter.

   size_scale( [$new_size_scale] )
       Returns the multiplier that will be apply to each of the range group's width after the
       first one.

       When this attribute is greater than 1, it creates a logarithmic scale where each new
       ranges is $size_scale wider than the precedent one.

       If the $new_size_scale parameter is used, it changes the attribute to this new value. It
       should be a positive interger or can also be a parameter reference.

SEE ALSO

        Lire::ReportSpec(3pm), Lire::Group(3pm), Lire::ReportOperator(3pm),
        Lire::Aggregator(3pm)

AUTHORS

         Francis J. Lacoste <flacoste@logreport.org>
         Wolfgang Sourdeau <wsourdeau@logreport.org>

VERSION

       $Id: Rangegroup.pm,v 1.25 2006/07/30 10:50:17 vanbaal Exp $

COPYRIGHT

       Copyright (C) 2001-2004 Stichting LogReport Foundation LogReport@LogReport.org

       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 http://www.gnu.org/copyleft/gpl.html.