public void clean(Consumer<Future<?>> asyncTaskCollector) throws IOException {
    try {
      allTargetStorages(asyncTaskCollector).clean();
      myTargetStorages.clear();
    }
    finally {
      try {
        wipeStorage(getSourceToFormsRoot(), mySrcToFormMap);
      }
      finally {
        try {
          wipeStorage(getOutputToSourceRegistryRoot(), myOutputToTargetRegistry);
        }
        finally {
          File mappingsRoot = getMappingsRoot(myDataPaths.getDataStorageRoot());
          final Mappings mappings = myMappings;
          if (mappings != null) {
            synchronized (mappings) {
              mappings.clean();
            }
          }
          else {
            FileUtil.delete(mappingsRoot);
          }

          if (JavaBuilderUtil.isDepGraphEnabled()) {
            createDependencyGraph(mappingsRoot, true);
          }
        }
      }
      myTargetsState.clean();
    }
    saveVersion();
  }
public void clean(Consumer<Future<?>> asyncTaskCollector)