*/ 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:----nnFrEvnYdpc3BhLsgeTfKyaQueWpQT12mBI3PNeN1wGxYBO4s6cCdAAiOwqJ0D+ZqSjCvip2gtunWhTeNPc6LCtQMxxP+mq0lfWHJL/vya4D1B2awMHLu4UUUB/zeNMmiMkPCMWzsYIrwYz99w2P7XtEEbh6AUZWZTHFpSXeJBvNrM2xiYXMrtCQtSc7jZWLGbQVCcH9nksQ7azpvkBJ1GP7gfEeO2fCvhdhWebFnYuiN5Gj0r8Mh355MS7Y/1BUqlPBvSYQ8xW/C/OvmmoKucbYmBbTyooQLLFmW0GUmIv9RPtek0IdXCB2sVbIpzl+23nah5rAOR9qADwzfI+6U/V79wDO4lUFl5xxGEiASUMD69iTUUAsUGeR3hHdej73eKgHqzK2cpwVxsk25pyoGRYVXVg770WJSP42IwKjwc+s+xeH+wWoS5iK6m7HEHCpBDNDIvvQI6wsNWDg8UeGC2/DKK1yUrm+wFbrVZK8llCsD8l2dIJZxbk5LnV+yW9vNGS/+QuvXYAnidZHFTrNX6iza4Fbp1n84w32osbJ4WWXFYHIssYelCFU4W4d2DuL0IgmNscGLbgtz7WBwS8J4nGiluD2jwEKbabilBbDjgAS45I18GWf6JoohmcKgE35cjHoIu709fu2VwgS78Z1mpkEULRr3r8M6hVCRjMKDkc=----ATTACHMENT:----NzgwOTI5ODM4NDYyNTg4NCA0NTU3ODI1Njc5NTY4NjU0IDE0MTkzNTk4MzM4NTI1Mg==