def __str__(self):

        # return reference
        string_OUT = ""

        # declare variables
        temp_string = ""
        has_non_ascii_characters = False

        # id?
        if (self.id) and (self.id != None) and (self.id > 0):

            string_OUT += "Domain " + str(self.id) + " - "

        # -- END check to see if id --#

        # name
        if self.domain_name:

            string_OUT += self.domain_name

        # -- END check to see if domain_name --#

        # description
        if self.description:

            temp_string = self.description

            if self.str_convert_to_ascii == True:

                # check for non-ASCII characters
                has_non_ascii_characters = StringHelper.has_non_ascii_characters(self.description)

                # yes?
                if has_non_ascii_characters == True:

                    # convert to ASCII
                    temp_string = temp_string.encode(encoding="ascii", errors="xmlcharrefreplace")

                # -- END check for non-ASCII characters. --#

            # -- END check to see if we are to convert to ASCII. --#

            string_OUT += " - " + temp_string

        # -- END check to see if description --#

        # source
        if self.source:

            string_OUT += " ( from: " + self.source + " )"

        # -- END check to see if source --#

        return string_OUT