public final function handle(ehough_shortstop_api_HttpRequest $request)
    {
        $logger         = $this->getLogger();
        $isDebugEnabled = $logger->isHandling(ehough_epilog_Logger::DEBUG);

        if ($isDebugEnabled) {

            $logger->debug(sprintf('Preparing to handle %s', $request));
        }

        /** allow for setup */
        $this->prepareToHandleNewRequest($request);

        /**
         * Fire transport initialized event.
         */
        $transportInitializedEvent = new ehough_tickertape_GenericEvent($this, array('request' => $request));
        $this->_eventDispatcher->dispatch(ehough_shortstop_api_Events::TRANSPORT_INITIALIZED, $transportInitializedEvent);

        if ($isDebugEnabled) {

            $logger->debug(sprintf('Now handling %s', $request));
        }

        /** handle the request. */
        $rawResponse = $this->handleRequest($request);

        if ($isDebugEnabled) {

            $logger->debug(sprintf('Assembling response from %s', $request));
        }

        $response = $this->_buildResponse($rawResponse, $request, $isDebugEnabled);

        if ($isDebugEnabled) {

            $logger->debug(sprintf('Tearing down after %s', $request));
        }

        $this->_tearDown($request, false);

        if ($isDebugEnabled) {

            $logger->debug(sprintf('Successfully handled %s', $request));
        }

        return $response;
    }