Source code for AutoArchive._application._action.action

# action.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2023 Róbert Čerňanský



from abc import ABCMeta, abstractmethod

from AutoArchive._application._action.action_result import ActionResult



[docs] class Action(metaclass = ABCMeta): def __init__(self, actionResult: ActionResult): self.__actionResult = actionResult
[docs] def execute(self) -> bool: self.__actionResult.set(ActionResult.ActionResults.Successful) self.__actionResult.startObservingUiMessages() result = self.executeAction_() self.__actionResult.stopObservingUiMessages() self.handleResult_(self.__actionResult) return self.__actionResult.computeReturnValue(result)
[docs] @abstractmethod def executeAction_(self) -> bool: pass
[docs] def handleResult_(self, actionResult: ActionResult) -> None: pass