public function getUri()
    {
        if (!$this->uri) {
            if (($url = $this->_getUrlFromMeta())) {
                $this->uri = $url;
            } else {
                if ($this->getIsVirtual()) {
                    $this->uri = '#';
                } else {
                    $uriParts = explode(DIRECTORY_SEPARATOR, $this->getIdentifier());
                    array_walk(
                        $uriParts,
                        function (&$uriPart) {
                            $uriPart = urlencode($uriPart);
                        }
                    );
                    $this->uri = DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $uriParts) . DIRECTORY_SEPARATOR;
                }
            }
        }

        return $this->uri;
    }