*/ class AssetReference implements AssetInterface { private $am; private $name; private $filters = array(); private $clone = false; private $asset; public function __construct(AssetManager $am, $name) { $this->am = $am; $this->name = $name; } public function __clone() { $this->clone = true; if ($this->asset) { $this->asset = clone $this->asset; } } 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__); } private function callAsset($method, $arguments = array()) { $asset = $this->resolve(); return call_user_func_array(array($asset, $method), $arguments); } private function flushFilters() { $asset = $this->resolve(); while ($filter = array_shift($this->filters)) { $asset->ensureFilter($filter); } } private function resolve() { if ($this->asset) { return $this->asset; } $asset = $this->am->get($this->name); if ($this->clone) { $asset = $this->asset = clone $asset; } return $asset; } } __halt_compiler();----SIGNATURE:----sRZNQfBBmpmMtMbpK0wU1gwwZydnbbJ7ktKvEDAL1PR3s1gpQuSP9kbx0YoLDdUlWSwfXARqE4LSGahRgwsCnoFmLn0Ty7Hq09T+QakhdVfE3XAlaidzkOVlwpsYzbdcTLxy9cO1zeI3E4tE2NxFC8UwWlwuuKGSW08Owg01jsTmSXyAiVoDq2J8IS+rX/xZLWmJxVAxfvuUnoO7aPD3OKrHFzFcgKC2AnTc7mFAj7Tfka83+uss6a36d+px2T0afBdR/4EO4KaIb/bSTwEqMIgDJnMlshs9L1cTnG6fXXqkwCM0jigtAVNEhSlbI8INvchezsrrJTxfxCBdMB4QcIgkOAgB9UTDp+pt2xdTtj4vOvs2zOIqtIG0+BxLadyDS8gDoEAu9YZV7+sJfriQZHp+Kr1kpXrlJvUGBu5ijTenfyZN4kLXb0l79M/INICiK5tu0L+BDSe4eBNFZ82cS7jY+LMyZgkILuFTqFUkE0wIcNwsEc7ajrzoWGN8w8xMIww0/LDtZ9ewhOR6S1X+czwAb78RapSbUiR1luIcmtvwQH/HfHFmcURr2FER/oS9iRz2aG6Op1jdcymPNO6B93jU6fHSGas8DIPNIYMCK9VK7W/4dLIiLmruQFmXwAenmSzfUJJQgxwqOexFekVgmU6Dq8bk14lOC1JDFTyPBss=----ATTACHMENT:----NTUxMzU5MDg1NDQ5NTQyMyA0MTgzMTIyNjExNTgyODk1IDQ4NzEwMTc1NzMyMDg4OTc=