diff --git a/src/Checker/Checker.py b/src/Checker/Checker.py new file mode 100644 index 0000000000000000000000000000000000000000..92199b8d7b51a8a8d3f7885401294790ead18764 --- /dev/null +++ b/src/Checker/Checker.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- + +from enum import Enum + +from Model.Except import NotImplementedMethodeError + +class STATUS(Enum): + UNKNOWN = -1 + OK = 0 + WARNING = 1 + ERROR = 2 + +class AbstractModelChecker(object): + def __init__(self): + self._name = "" + self._description = "" + + self._status = STATUS.UNKNOWN + self._summary = "Unknown" + + @property + def name(self): + return self._name + + @property + def description(self): + return self._description + + # Checker status + + def is_unknown(self): + return self._status == STATUS.UNKNOWN + + def is_ok(self): + return self._status == STATUS.OK + + def is_warning(self): + return self._status == STATUS.WARNING + + def is_error(self): + return self._status == STATUS.ERROR + + # Abstract function + + def run(self, study): + """Run checker function + + Args: + study: The study to check + + Returns: + Return true if study is valid for this checker, false + otherelse + """ + raise NotImplementedMethodeError(self, self.run) + + def summary(self): + """Return summary message + + Returns: + Return summary string + """ + raise NotImplementedMethodeError(self, self.summary)