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.