public void readClasspath(
     ModifiableRootModel model,
     final Collection<String> unknownLibraries,
     Collection<String> unknownJdks,
     final Set<String> usedVariables,
     Set<String> refsToModules,
     final String testPattern,
     Element classpathElement)
     throws IOException, ConversionException {
   for (OrderEntry orderEntry : model.getOrderEntries()) {
     if (!(orderEntry instanceof ModuleSourceOrderEntry)) {
       model.removeOrderEntry(orderEntry);
     }
   }
   int idx = 0;
   for (Object o : classpathElement.getChildren(EclipseXml.CLASSPATHENTRY_TAG)) {
     try {
       readClasspathEntry(
           model,
           unknownLibraries,
           unknownJdks,
           usedVariables,
           refsToModules,
           testPattern,
           (Element) o,
           idx++,
           EclipseModuleManagerImpl.getInstance(model.getModule()),
           ((BasePathMacroManager) PathMacroManager.getInstance(model.getModule()))
               .getExpandMacroMap());
     } catch (ConversionException e) {
       ErrorLog.rethrow(ErrorLog.Level.Warning, null, EclipseXml.CLASSPATH_FILE, e);
     }
   }
   if (!model.isSdkInherited() && model.getSdkName() == null) {
     EclipseModuleManagerImpl.getInstance(model.getModule()).setForceConfigureJDK();
     model.inheritSdk();
   }
 }