@utilities.arguments_not_none<EOL><INDENT>def set_provider_links(self, resource_ids):<DEDENT>
<EOL>if not isinstance(resource_ids, list):<EOL><INDENT>raise errors.InvalidArgument()<EOL><DEDENT>if self.get_provider_links_metadata().is_read_only():<EOL><INDENT>raise errors.NoAccess()<EOL><DEDENT>idstr_list = []<EOL>for object_id in resource_ids:<EOL><INDENT>if not self._is_valid_id(object_id):<EOL><INDENT>raise errors.InvalidArgument()<EOL><DEDENT>idstr_list.append(str(object_id))<EOL><DEDENT>self._my_map['<STR_LIT>'] = idstr_list<EOL>
Sets a provider chain in order from the most recent source to the originating source.

        arg:    resource_ids (osid.id.Id[]): the new source
        raise:  InvalidArgument - ``resource_ids`` is invalid
        raise:  NoAccess - ``Metadata.isReadOnly()`` is ``true``
        raise:  NullArgument - ``resource_ids`` is ``null``
        *compliance: mandatory -- This method must be implemented.*