def set_assets(self, asset_ids=None):
        """Sets the assets.

        arg:    assetIds (osid.id.Id): the asset Ids
        raise:  INVALID_ARGUMENT - assetIds is invalid
        raise:  NullArgument - assetIds is null
        raise:  NoAccess - metadata.is_read_only() is true
        compliance: mandatory - This method must be implemented.

        """
        if asset_ids is None:
            raise NullArgument()
        metadata = Metadata(**settings.METADATA['asset_ids'])
        if metadata.is_read_only():
            raise NoAccess()
        if self._is_valid_input(asset_ids, metadata, array=True):
            for asset_id in asset_ids:
                self._my_map['assetIds'].append(str(asset_id))
        else:
            raise InvalidArgument