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; } /** * {@inheritdoc} */ public function getUrl() { $url = parent::getUrl(); if (! $this->resolved && $url !== null) { $this->setUrl(Macro::resolveMacros($url->getAbsoluteUrl(), $this->getObject())); $this->resolved = true; } return $url; } /** * {@inheritdoc} */ public function getRender() { if ($this->render === null) { $filter = $this->getFilter(); $this->render = $filter ? $this->getObject()->matches(Filter::fromQueryString($filter)) : true; } return $this->render; } }