from abc import abstractmethod, ABCMeta
from typing import Tuple

from messageprocessor import MessageProcessor
from simplehttprouter import Route


class RouterProcessorBuilder(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def get_processor(self, route):
        # type: (Route) -> Tuple[Route, MessageProcessor]
        raise NotImplementedError()
