Stores an array of filter objects and a table to be manipulated in those filter objects.

Description

Stores an array of filter objects, and an BioMart::AttributeTable (or BioMart::ResultTable) with data to represent these filters. The default way to handle this mapping of datai n the tree to filters in the filter list is represented by the toSQL method, but this can be overridden by any given Dataset. FilterList objects are used as Importables which can link the ResultTable from an Exporting Dataset with a particular Importing Dataset based on the link name. The name of the Link representing the exportable<->importable relationship between the two datasets can be retrieved from a FilterList using its linkName.

Usage : $filt->batching(1); if ($filt->batching) { } Description : Determine if this is a batching filter, or instruct it that it is a batching filter. Returntype : boolean, true if this is a batching filter, false otherwise Exceptions : na Caller : BioMart::DatasetI implementations.

Usage : unless ($filter->exhausted) { .. } Description : determine if this FilterList is exhausted (eg, its underlying table is exhausted). Returntype : boolean, true if a table has been set on the FilterList, and it is exhausted, false otherwise Exceptions : none Caller : BioMart::DatasetI

Usage : my $table = $flist->getTable; Description : get the BioMart::AttributeTable or BioMart::ResultTable object holding the data for this FilterList. Returntype : may be either a BioMart::AttributeTable, or a BioMart::ResultTable. ResultTable objects can be manipulated as read-only AttributeTable objects. This is intended to be used by a BioMart::DatasetI implementation to override the default toSQL method. Exceptions : none Caller : caller

Usage : my $linkName = $flist->linkName; $flist->linkName($newName);Description : set/get the linkName for this FilterList, if it is used as an Importable. This method is intended for use only by the BioMart::QueryRunner, or a BioMart::DatasetI implementing object.Returntype : scalar $linkNameExceptions : noneCaller : BioMart::QueryRunner, or a BioMart::DatasetI implementing object.

Usage : my $linkVersion = $flist->linkVersion; $flist->linkVersion($newName);Description : set/get the linkVersion for this FilterList, if it is used as an Importable. This method is intended for use only by the BioMart::QueryRunner, or a BioMart::DatasetI implementing object.Returntype : scalar $linkVersionExceptions : noneCaller : BioMart::QueryRunner, or a BioMart::DatasetI implementing object.

Usage : set a BioMart::AttributeTable as the table $flist->setTable($attTable);
set a BioMart::ResultTable as the table
$flist->setTable($rTable);
Description: stores a BioMart::AttributeTable or BioMart::ResultTable
object as the table to manipulate for toSQL.
Returntype : none
Exceptions : none
Caller : caller

my($self, @param) = @_;
$self->SUPER::_init(@param);
my$proto = shift@param;
#until we implement _init in all objects this wont work.my$protoFilters = $proto->getAllFilters;
my$newFilters = [];
foreachmy$filt(@{$protoFilters}){push @{$newFilters}, $filt->new;
}$self->attr('filters', $newFilters);
# if the prototype table is set, take its reference# as you will not want to change the underlying data# most of the time FilterList objects will be copied# before their tables are set$self->attr('attribute_table', $proto->getTable);
$self->attr('batching', $proto->batching);
$self->attr('exhausted', $proto->exhausted);
$self->attr('sql', undef);