def __exec_trigger(self, action, collection, input_object, match_params):
        """
        Executes trigger
        :param action: Trigger.ACTION_BEFORE_DELETE, ACTION_AFTER_DELETE, ACTION_BEFORE_UPSERT, ACTION_AFTER_DELETE
        :param collection: see corresponding parameter in delete/update method
        :param input_object: see corresponding parameter in update method
        :param match_params: see corresponding parameter in delete/update method
        """
        trigger = Trigger.factory(self.__db, collection, action)
        if trigger:
            self.__logger.info('exec trigger {} on {}'.format(action, collection))
            # ToDo: catch exception
            trigger.execute(input_object, match_params)