make ExternalStorageConfigurationManager an interface

IDEA-CR-37150
IDEA-199211 Refactor code dependent on project model implementation
This commit is contained in:
Leonid Shalupov
2018-10-02 11:48:03 +03:00
parent 9941217aac
commit 9f81d64ea8
3 changed files with 18 additions and 9 deletions
@@ -27,7 +27,8 @@
<projectService serviceInterface="com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManager"
serviceImplementation="com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl"
order="first"/>
<projectService serviceImplementation="com.intellij.openapi.project.ExternalStorageConfigurationManager"/>
<projectService serviceInterface="com.intellij.openapi.project.ExternalStorageConfigurationManager"
serviceImplementation="com.intellij.openapi.project.ExternalStorageConfigurationManagerImpl"/>
<projectService serviceImplementation="com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsDataStorage"/>
<projectService serviceImplementation="com.intellij.openapi.externalSystem.service.project.ExternalProjectsWorkspaceImpl"/>
<externalProjectDataService implementation="com.intellij.openapi.externalSystem.service.project.manage.ProjectDataServiceImpl"/>
@@ -0,0 +1,13 @@
// Copyright 2000-2018 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.project;
import com.intellij.openapi.components.ServiceManager;
public interface ExternalStorageConfigurationManager {
static ExternalStorageConfigurationManager getInstance(Project project) {
return ServiceManager.getService(project, ExternalStorageConfigurationManager.class);
}
boolean isEnabled();
void setEnabled(boolean value);
}
@@ -14,12 +14,7 @@ class ExternalStorageConfiguration : BaseState() {
}
@State(name = "ExternalStorageConfigurationManager")
class ExternalStorageConfigurationManager : PersistentStateComponent<ExternalStorageConfiguration>, ModificationTracker {
companion object {
@JvmStatic
fun getInstance(project: Project): ExternalStorageConfigurationManager = ServiceManager.getService(project, ExternalStorageConfigurationManager::class.java)
}
class ExternalStorageConfigurationManagerImpl : PersistentStateComponent<ExternalStorageConfiguration>, ModificationTracker, ExternalStorageConfigurationManager {
private var state = ExternalStorageConfiguration()
override fun getModificationCount(): Long = state.modificationCount
@@ -32,12 +27,12 @@ class ExternalStorageConfigurationManager : PersistentStateComponent<ExternalSto
this.state = state
}
fun isEnabled(): Boolean = state.enabled
override fun isEnabled(): Boolean = state.enabled
/**
* Internal use only. Call ExternalProjectsManagerImpl.setStoreExternally instead.
*/
fun setEnabled(value: Boolean) {
override fun setEnabled(value: Boolean) {
state.enabled = value
}
}