Parses colon-separated list of descriptor fields and returns them as a Descriptor.

        :param value: colon-separated descriptor fields to initialize Descriptor.

        :return: a newly created Descriptor.

def from_string(value):
        """
        Parses colon-separated list of descriptor fields and returns them as a Descriptor.

        :param value: colon-separated descriptor fields to initialize Descriptor.

        :return: a newly created Descriptor.
        """
        if value == None or len(value) == 0:
            return None
                
        tokens = value.split(":")
        if len(tokens) != 5:
            raise ConfigException(
                None, "BAD_DESCRIPTOR", "Descriptor " + str(value) + " is in wrong format"
            ).with_details("descriptor", value)
            
        return Descriptor(tokens[0].strip(), tokens[1].strip(), tokens[2].strip(), tokens[3].strip(), tokens[4].strip())