<?php
/*
* This file is part of the Assetic package, an OpenSky project.
*
* (c) 2010-2012 OpenSky Project Inc
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Assetic\Asset;
use Assetic\AssetManager;
use Assetic\Filter\FilterInterface;
/**
* A reference to an asset in the asset manager.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetReference implements AssetInterface {
private $am;
private $name;
private $filters = array();
public function __construct(AssetManager $am, $name) {
$this->am = $am;
$this->name = $name;
}
public function ensureFilter(FilterInterface $filter) {
$this->filters[] = $filter;
}
public function getFilters() {
$this
->flushFilters();
return $this
->callAsset(__FUNCTION__);
}
public function clearFilters() {
$this->filters = array();
$this
->callAsset(__FUNCTION__);
}
public function load(FilterInterface $additionalFilter = null) {
$this
->flushFilters();
return $this
->callAsset(__FUNCTION__, array(
$additionalFilter,
));
}
public function dump(FilterInterface $additionalFilter = null) {
$this
->flushFilters();
return $this
->callAsset(__FUNCTION__, array(
$additionalFilter,
));
}
public function getContent() {
return $this
->callAsset(__FUNCTION__);
}
public function setContent($content) {
$this
->callAsset(__FUNCTION__, array(
$content,
));
}
public function getSourceRoot() {
return $this
->callAsset(__FUNCTION__);
}
public function getSourcePath() {
return $this
->callAsset(__FUNCTION__);
}
public function getTargetPath() {
return $this
->callAsset(__FUNCTION__);
}
public function setTargetPath($targetPath) {
$this
->callAsset(__FUNCTION__, array(
$targetPath,
));
}
public function getLastModified() {
return $this
->callAsset(__FUNCTION__);
}
public function getVars() {
return $this
->callAsset(__FUNCTION__);
}
public function getValues() {
return $this
->callAsset(__FUNCTION__);
}
public function setValues(array $values) {
$this
->callAsset(__FUNCTION__, array(
$values,
));
}
// private
private function callAsset($method, $arguments = array()) {
$asset = $this->am
->get($this->name);
return call_user_func_array(array(
$asset,
$method,
), $arguments);
}
private function flushFilters() {
$asset = $this->am
->get($this->name);
while ($filter = array_shift($this->filters)) {
$asset
->ensureFilter($filter);
}
}
}
Name | Description |
---|---|
AssetReference | A reference to an asset in the asset manager. |