La classe "\fire\Filter" consente di filtrare il contenuto di un gruppo di oggetti (booleani, numeri, stringhe, ...).
Source code:
include("fxcore.php");
$booleansGroup = new \fire\Group_bool();
$booleansGroup->c_include(true);
$booleansGroup->c_include(false);
$booleansGroup->c_include(false);
echo "booleans group size: " . $booleansGroup->size() . "\n";
$booleanFilter = \fire\BooleanFilter::IsFalse();
echo "boolean filter name: " . $booleanFilter->toString() . "\n";
$booleanFilterClass = new \fire\Clazz($booleanFilter);
echo "boolean filter class name: " . $booleanFilterClass->getName() . "\n";
$booleansGroup = $booleansGroup->filter($booleanFilter);
echo "filtered booleans group size: " . $booleansGroup->size() . "\n";
$stringsGroup = new \fire\Group_std_string();
$stringsGroup->c_include("christian");
$stringsGroup->c_include("damiano");
$stringsGroup->c_include("lorenzo");
$stringsGroup->c_include("luca");
$stringsGroup->c_include("maurizio");
$stringsGroup->c_include("mauro");
echo "strings group size: " . $stringsGroup->size() . "\n";
while ($stringsGroup->hasNext()) {
$string = $stringsGroup->next();
echo "next string: " . $string . "\n";
}
$stringFilter = \fire\StringFilter::StartsWith("mau");
$stringsGroup = $stringsGroup->filter($stringFilter);
echo "filtered strings group size: " . $stringsGroup->size() . "\n";
$stringsGroup->setIteratorFilter($stringFilter);
while ($stringsGroup->hasNext()) {
$string = $stringsGroup->next();
echo "next filtered string: " . $string . "\n";
}