<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def import_file(self, taskfileinfo):
 """Import the file for the given taskfileinfo This will also update the status to :data:`Reftrack.IMPORTED`. This will also call :meth:`fetch_new_children`. Because after the import, we might have new children. :param taskfileinfo: the taskfileinfo to import. If None is given, try to import the current reference :type taskfileinfo: :class:`jukeboxcore.filesys.TaskFileInfo` | None :returns: None :rtype: None :raises: :class:`ReftrackIntegrityError` """

        assert self.status() is None,\
            "Entity is already in scene. Use replace instead."
        refobjinter = self.get_refobjinter()
        refobj = self.create_refobject()
        with self.set_parent_on_new(refobj):
            refobjinter.import_taskfile(refobj, taskfileinfo)
        self.set_refobj(refobj)
        self.set_status(self.IMPORTED)
        self.fetch_new_children()
        self.update_restrictions()
        self.emit_data_changed()