object = $object; return $this; } /** * Return this action's object * * @return MonitoredObject */ public function getObject() { return $this->object; } /** * Set the filter to use when being asked whether to render this action * * @param string $filter * * @return $this */ public function setFilter($filter) { $this->filter = $filter; return $this; } /** * Return the filter to use when being asked whether to render this action * * @return string */ public function getFilter() { return $this->filter; } public function setUrl($url) { if (is_string($url)) { $this->rawUrl = $url; } else { parent::setUrl($url); } return $this; } public function getUrl() { $url = parent::getUrl(); if (! $this->resolved && $url === null && $this->rawUrl !== null) { $this->setUrl(Url::fromPath(Macro::resolveMacros($this->rawUrl, $this->getObject()))); $this->resolved = true; return parent::getUrl(); } else { return $url; } } public function getRender() { if ($this->render === null) { $filter = $this->getFilter(); $this->render = $filter ? Filter::fromQueryString($filter)->matches($this->getObject()) : true; } return $this->render; } }