def create_asset_content(self, asset_content_form=None):
if isinstance(asset_content_form, AssetContentForm):<EOL><INDENT>asset_content = self._provider_session.create_asset_content(<EOL>asset_content_form._payload)<EOL><DEDENT>else:<EOL><INDENT>asset_content = self._provider_session.create_asset_content(<EOL>asset_content_form)<EOL><DEDENT>try:<EOL><INDENT>if asset_content.has_url() and '<STR_LIT>' in asset_content.get_url():<EOL><INDENT>self._update_asset_content_filename_on_disk_to_match_id(asset_content)<EOL>asset_content = self._update_asset_content_url_to_match_id(asset_content)<EOL>return AssetContent(asset_content, self._config_map)<EOL><DEDENT><DEDENT>except TypeError:<EOL><INDENT>pass<EOL><DEDENT>return asset_content<EOL>
Creates new ``AssetContent`` for a given asset.

        arg:    asset_content_form (osid.repository.AssetContentForm):
                the form for this ``AssetContent``
        return: (osid.repository.AssetContent) - the new
                ``AssetContent``
        raise:  IllegalState - ``asset_content_form`` already used in a
                create transaction
        raise:  InvalidArgument - one or more of the form elements is
                invalid
        raise:  NullArgument - ``asset_content_form`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        raise:  Unsupported - ``asset_content_form`` did not originate
                from ``get_asset_content_form_for_create()``
        *compliance: mandatory -- This method must be implemented.*