protected function registerTemplateRenderInterface(INabuMessagingTemplateRenderInterface $interface) : bool
    {
        $hash = $interface->getHash();
        if (is_array($this->template_render_interface_list) &&
            array_key_exists($hash, $this->template_render_interface_list)
        ) {
            throw new ENabuMessagingException(
                ENabuMessagingException::ERROR_TEMPLATE_RENDER_INSTANCE_ALREADY_REGISTERED,
                array($hash)
            );
        }

        if ($this->template_render_interface_list === null) {
            $this->template_render_interface_list = array($hash => $interface);
        } else {
            $this->template_render_interface_list[$hash] = $interface;
        }

        return $interface->init();
    }