def add_file(self,<EOL>asset_data,<EOL>label=None,<EOL>asset_type=None,<EOL>asset_content_type=None,<EOL>asset_content_record_types=None,<EOL>asset_name='<STR_LIT>',<EOL>asset_description='<STR_LIT>'):
if asset_data is None:<EOL><INDENT>raise NullArgument('<STR_LIT>')<EOL><DEDENT>if not isinstance(asset_data, DataInputStream):<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>if asset_type is not None and not isinstance(asset_type, Type):<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>if asset_content_type is not None and not isinstance(asset_content_type, Type):<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>if asset_content_record_types is not None and not isinstance(asset_content_record_types, list):<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>if asset_content_record_types is not None:<EOL><INDENT>for record_type in asset_content_record_types:<EOL><INDENT>if not isinstance(record_type, Type):<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT><DEDENT><DEDENT>if label is None:<EOL><INDENT>label = self._label_metadata['<STR_LIT>'][<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>if not self.my_osid_object_form._is_valid_string(<EOL>label, self.get_label_metadata()) or '<STR_LIT:.>' in label:<EOL><INDENT>raise InvalidArgument('<STR_LIT:label>')<EOL><DEDENT><DEDENT>asset_id, asset_content_id = self.create_asset(asset_data=asset_data,<EOL>asset_type=asset_type,<EOL>asset_content_type=asset_content_type,<EOL>asset_content_record_types=asset_content_record_types,<EOL>display_name=asset_name,<EOL>description=asset_description)<EOL>self.add_asset(asset_id,<EOL>asset_content_id,<EOL>label,<EOL>asset_content_type)<EOL>
stub