project model: extract an application service from ModifiableModelCommitter to replace it in new project model

GitOrigin-RevId: fc05ab86d8b54020b1ebac60f9fdbb2e3629b8db
This commit is contained in:
Leonid Shalupov
2019-08-02 21:02:32 +03:00
committed by intellij-monorepo-bot
parent 064d3dc068
commit ee62e1573f
4 changed files with 47 additions and 6 deletions
@@ -135,6 +135,9 @@
<applicationService serviceInterface="com.intellij.openapi.roots.libraries.LibraryTypeService"
serviceImplementation="com.intellij.openapi.roots.impl.libraries.LibraryTypeServiceImpl"/>
<applicationService serviceInterface="com.intellij.openapi.roots.impl.ModifiableModelCommitterService"
serviceImplementation="com.intellij.openapi.roots.impl.ModifiableModelCommitterServiceImpl"/>
<applicationService serviceInterface="com.intellij.ui.IconDeferrer"
serviceImplementation="com.intellij.ui.IconDeferrerImpl"/>
@@ -0,0 +1,20 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.roots.impl;
import com.intellij.openapi.module.ModifiableModuleModel;
import com.intellij.openapi.roots.ModifiableRootModel;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.Collection;
public class ModifiableModelCommitter {
public static void multiCommit(@NotNull ModifiableRootModel[] rootModels, @NotNull ModifiableModuleModel moduleModel) {
multiCommit(Arrays.asList(rootModels), moduleModel);
}
public static void multiCommit(@NotNull Collection<? extends ModifiableRootModel> rootModels,
@NotNull ModifiableModuleModel moduleModel) {
ModifiableModelCommitterService.getInstance().multiCommit(rootModels, moduleModel);
}
}
@@ -0,0 +1,19 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.roots.impl;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.module.ModifiableModuleModel;
import com.intellij.openapi.roots.ModifiableRootModel;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
@ApiStatus.Internal
public interface ModifiableModelCommitterService {
void multiCommit(@NotNull Collection<? extends ModifiableRootModel> rootModels, @NotNull ModifiableModuleModel moduleModel);
static ModifiableModelCommitterService getInstance() {
return ServiceManager.getService(ModifiableModelCommitterService.class);
}
}
@@ -13,18 +13,17 @@ import com.intellij.util.graph.CachingSemiGraph;
import com.intellij.util.graph.DFSTBuilder;
import com.intellij.util.graph.GraphGenerator;
import com.intellij.util.graph.InboundSemiGraph;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import java.util.*;
public class ModifiableModelCommitter {
@ApiStatus.Internal
public class ModifiableModelCommitterServiceImpl implements ModifiableModelCommitterService {
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.module.impl.ModifiableModelCommitter");
public static void multiCommit(@NotNull ModifiableRootModel[] rootModels, @NotNull ModifiableModuleModel moduleModel) {
multiCommit(Arrays.asList(rootModels), moduleModel);
}
public static void multiCommit(@NotNull Collection<? extends ModifiableRootModel> rootModels, @NotNull ModifiableModuleModel moduleModel) {
@Override
public void multiCommit(@NotNull Collection<? extends ModifiableRootModel> rootModels, @NotNull ModifiableModuleModel moduleModel) {
ApplicationManager.getApplication().assertWriteAccessAllowed();
final List<RootModelImpl> modelsToCommit = getSortedChangedModels(rootModels, moduleModel);