mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
make ExternalStorageConfigurationManager an interface
IDEA-CR-37150 IDEA-199211 Refactor code dependent on project model implementation
This commit is contained in:
@@ -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"/>
|
||||
|
||||
+13
@@ -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);
|
||||
}
|
||||
+3
-8
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user