public boolean isConversionNeeded() throws CannotConvertException {
    myProcessProjectFile = context.getStorageScheme() == StorageScheme.DEFAULT && myProjectFileConverter != null
                           && myProjectFileConverter.isConversionNeeded(context.getProjectSettings());

    myProcessWorkspaceFile = myWorkspaceConverter != null && Files.exists(context.getWorkspaceSettings().getPath())
                             && myWorkspaceConverter.isConversionNeeded(context.getWorkspaceSettings());

    myModulesFilesToProcess.clear();
    if (myModuleFileConverter != null) {
      for (Path moduleFile : context.getModulePaths()) {
        if (Files.exists(moduleFile) && myModuleFileConverter.isConversionNeeded(context.getModuleSettings(moduleFile))) {
          myModulesFilesToProcess.add(moduleFile);
        }
      }
    }

    myProcessRunConfigurations = myRunConfigurationsConverter != null
                                 && myRunConfigurationsConverter.isConversionNeeded(context.getRunManagerSettings$intellij_platform_lang_impl());

    myProcessProjectLibraries = myProjectLibrariesConverter != null
                                 && myProjectLibrariesConverter.isConversionNeeded(context.doGetProjectLibrarySettings$intellij_platform_lang_impl());

    myArtifacts = myArtifactsConverter != null
                  && myArtifactsConverter.isConversionNeeded(context.getArtifactSettings$intellij_platform_lang_impl());

    if (myProcessProjectFile ||
        myProcessWorkspaceFile ||
        myProcessRunConfigurations ||
        myProcessProjectLibraries ||
        !myModulesFilesToProcess.isEmpty()) {
      return true;
    }

    try {
      return myConverter.isConversionNeeded();
    }
    catch (Exception e) {
      Logger.getInstance(ConversionRunner.class).error("Converter of provider " + providerId + " cannot check is conversion needed or not", e);
      return false;
    }
  }
public boolean isConversionNeeded()