Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
25.00% covered (danger)
25.00%
1 / 4
CRAP
75.00% covered (warning)
75.00%
12 / 16
AssetFileFiltersManager
0.00% covered (danger)
0.00%
0 / 1
25.00% covered (danger)
25.00%
1 / 4
11.56
75.00% covered (warning)
75.00%
12 / 16
 validatePlugin
0.00% covered (danger)
0.00%
0 / 1
6.00
50.00% covered (danger)
50.00%
2 / 4
 setService
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
5 / 5
 setOptions
0.00% covered (danger)
0.00%
0 / 1
2.06
75.00% covered (warning)
75.00%
3 / 4
 getOptions
0.00% covered (danger)
0.00%
0 / 1
2.15
66.67% covered (warning)
66.67%
2 / 3
<?php
namespace AssetsBundle\AssetFile;
class AssetFileFiltersManager extends \Zend\ServiceManager\AbstractPluginManager {
    /**
     * @var \AssetsBundle\Service\ServiceOptions
     */
    protected $options;
    /**
     * Validate the plugin. Checks that the filter loaded is an instance of \AssetsBundle\AssetFile\AssetFileFilter\AssetFileFilterInterface
     * @param mixed $oAssetsFilter
     * @throws \RuntimeException
     */
    public function validatePlugin($oAssetFileFilter) {
        if ($oAssetFileFilter instanceof \AssetsBundle\AssetFile\AssetFileFilter\AssetFileFilterInterface) {
            return;
        }
        throw new \RuntimeException(sprintf(
                'Assets Filter expects an instance of \AssetsBundle\AssetFile\AssetFileFilter\AssetFileFilterInterface, "%s" given', is_object($oAssetFileFilter) ? get_class($oAssetFileFilter) : (is_scalar($oAssetFileFilter) ? $oAssetFileFilter : gettype($oAssetFileFilter))
        ));
    }
    /**
     * @param string $sName
     * @param mixed $oAssetFileFilter
     * @param boolean $bShared
     * @return \AssetsBundle\AssetFile\AssetFileFiltersManager
     */
    public function setService($sName, $oAssetFileFilter, $bShared = true) {
        if ($oAssetFileFilter) {
            $this->validatePlugin($oAssetFileFilter);
            $oAssetFileFilter->setOptions($this->getOptions());
        }
        parent::setService($sName, $oAssetFileFilter, $bShared);
        return $this;
    }
    /**
     * @param \AssetsBundle\Service\ServiceOptions $oOptions
     * @return \AssetsBundle\AssetFile\AssetFileFiltersManager
     */
    public function setOptions(\AssetsBundle\Service\ServiceOptions $oOptions) {
        $this->options = $oOptions;
        foreach ($this->instances as $oAssetFileFilter) {
            $oAssetFileFilter->setOptions($oOptions);
        }
        return $this;
    }
    /**
     * @return \AssetsBundle\Service\ServiceOptions
     */
    public function getOptions() {
        if (!($this->options instanceof \AssetsBundle\Service\ServiceOptions)) {
            $this->setOptions(new \AssetsBundle\Service\ServiceOptions());
        }
        return $this->options;
    }
}