def is_correct(self):
        # pylint: disable=too-many-branches
        """Check if this object configuration is correct ::

        * Check our own specific properties
        * Call our parent class is_correct checker

        :return: True if the configuration is correct, otherwise False
        :rtype: bool
        """
        state = True

        # Do not execute checks if notifications are disabled
        if (hasattr(self, 'service_notification_options') and
                self.service_notification_options == ['n']):
            if (hasattr(self, 'host_notification_options') and
                    self.host_notification_options == ['n']):
                return True

        # Internal checks before executing inherited function...

        # Service part
        if not hasattr(self, 'service_notification_commands'):
            msg = "[notificationway::%s] do not have any service_notification_commands defined" % (
                self.get_name()
            )
            self.add_error(msg)
            state = False
        else:
            for cmd in self.service_notification_commands:
                if cmd is None:
                    msg = "[notificationway::%s] a service_notification_command is missing" % (
                        self.get_name()
                    )
                    self.add_error(msg)
                    state = False
                elif not cmd.is_valid():
                    msg = "[notificationway::%s] a service_notification_command is invalid" % (
                        self.get_name()
                    )
                    self.add_error(msg)
                    state = False

        if getattr(self, 'service_notification_period', None) is None:
            msg = "[notificationway::%s] the service_notification_period is invalid" % (
                self.get_name()
            )
            self.add_error(msg)
            state = False

        # Now host part
        if not hasattr(self, 'host_notification_commands'):
            msg = "[notificationway::%s] do not have any host_notification_commands defined" % (
                self.get_name()
            )
            self.add_error(msg)
            state = False
        else:
            for cmd in self.host_notification_commands:
                if cmd is None:
                    msg = "[notificationway::%s] a host_notification_command is missing" % (
                        self.get_name()
                    )
                    self.add_error(msg)
                    state = False
                elif not cmd.is_valid():
                    msg = "[notificationway::%s] a host_notification_command is invalid (%s)" % (
                        cmd.get_name(), str(cmd.__dict__)
                    )
                    self.add_error(msg)
                    state = False

        if getattr(self, 'host_notification_period', None) is None:
            msg = "[notificationway::%s] the host_notification_period is invalid" % (
                self.get_name()
            )
            self.add_error(msg)
            state = False

        return super(NotificationWay, self).is_correct() and state
Check if this object configuration is correct ::

        * Check our own specific properties
        * Call our parent class is_correct checker

        :return: True if the configuration is correct, otherwise False
        :rtype: bool