| Current Path : /home/azimutno/www/templates/jdirect_aviato/warp/src/Warp/Asset/Filter/ |
| Current File : /home/azimutno/www/templates/jdirect_aviato/warp/src/Warp/Asset/Filter/FilterCollection.php |
<?php
/**
* @package Warp Theme Framework
* @author YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license http://www.gnu.org/licenses/gpl.html GNU/GPL
*/
namespace Warp\Asset\Filter;
/**
* Asset filter collection.
*/
class FilterCollection implements FilterInterface, \Iterator
{
/**
* @var object
*/
protected $filters;
/**
* Constructor.
*/
public function __construct()
{
$this->filters = new \SplObjectStorage();
}
/**
* On load filter callback.
*
* @param object $asset
*/
public function filterLoad($asset)
{
foreach ($this->filters as $filter) {
$filter->filterLoad($asset);
}
}
/**
* On content filter callback.
*
* @param object $asset
*/
public function filterContent($asset)
{
foreach ($this->filters as $filter) {
$filter->filterContent($asset);
}
}
/**
* Add filter to collection.
*
* @param object $filter
*/
public function add($filter)
{
if ($filter instanceof Traversable) {
foreach ($filter as $f) {
$this->add($f);
}
} else {
$this->filters->attach($filter);
}
}
/**
* Remove filter from collection.
*
* @param object $filter
*/
public function remove($filter)
{
$this->filters->detach($filter);
}
/* Iterator interface implementation */
public function current()
{
return $this->filters->current();
}
public function key()
{
return $this->filters->key();
}
public function valid()
{
return $this->filters->valid();
}
public function next()
{
$this->filters->next();
}
public function rewind()
{
$this->filters->rewind();
}
}