protected function getParameter(/*# string */ $name)
    {
        if ($this->hasResolver()) {
            $found = $this->getResolver()->get($name);
        } else {
            // break into parts by '.'
            $parts = explode('.', $name);
            $found = $this->parameters;
            while (null !== ($part = array_shift($parts))) {
                if (!isset($found[$part])) {
                    $found = null;
                    break;
                }
                $found = $found[$part];
            }
        }

        if (null === $found) {
            throw new NotFoundException(
                Message::get(Message::PARAMETER_NOT_FOUND, $name),
                Message::PARAMETER_NOT_FOUND
                );
        }

        return $found;
    }