void outputProject(boolean files, boolean paths, boolean clss, boolean opts, IvyXmlWriter xw) {
    if (xw == null) return;

    xw.begin("PROJECT");
    xw.field("NAME", project_name);
    xw.field("PATH", base_directory.getPath());
    xw.field("WORKSPACE", project_manager.getWorkSpaceDirectory().getPath());
    if (python_interpreter != null) {
      xw.textElement("EXE", python_interpreter.getExecutable().getPath());
    }

    if (paths) {
      for (IPathSpec ps : project_paths) {
        ps.outputXml(xw);
      }
    }
    if (files) {
      for (IFileSpec fs : project_files) {
        fs.outputXml(xw);
      }
    }

    if (opts) pybase_prefs.outputXml(xw, true);

    xw.end("PROJECT");
  }
 void outputXml(IvyXmlWriter xw) {
   xw.begin("PROJECT");
   xw.field("NAME", project_name);
   xw.field("BASE", base_directory.getPath());
   if (python_interpreter != null) {
     xw.textElement("EXE", python_interpreter.getExecutable().getPath());
   }
   for (IPathSpec ps : project_paths) {
     ps.outputXml(xw);
   }
   for (IFileSpec fs : project_files) {
     fs.outputXml(xw);
   }
   pybase_prefs.outputXml(xw, false);
   xw.end("PROJECT");
 }