from abc import (
    ABCMeta,
    abstractmethod,
)

from messagebus import Message
from messagehandler import MessageHandlerExecutor


class HandleMessageStrategy(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def handle_message(
        self,           # type: HandleMessageStrategy
        executor,       # type: MessageHandlerExecutor
        message,        # type: Message
    ):
        # type: (...) -> None
        raise NotImplementedError()
