'Perform the export given the parameters handed to this class at init.'

def export(self):

    with self.modulestore.bulk_operations(self.courselike_key):
        fsm = OSFS(self.root_dir)
        root = lxml.etree.Element('unknown')
        with self.modulestore.branch_setting(ModuleStoreEnum.Branch.published_only, self.courselike_key):
            courselike = self.get_courselike()
            export_fs = courselike.runtime.export_fs = fsm.makeopendir(self.target_dir)
            xml_centric_courselike_key = self.get_key()
            adapt_references(courselike, xml_centric_courselike_key, export_fs)
            courselike.add_xml_to_node(root)
        self.process_root(root, export_fs)
        root_courselike_dir = ((self.root_dir + '/') + self.target_dir)
        self.process_extra(root, courselike, root_courselike_dir, xml_centric_courselike_key, export_fs)
        self.post_process(root, export_fs)
