mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup — extract private classes to file-level
This commit is contained in:
@@ -23,11 +23,31 @@ import org.jdom.Element
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.Paths
|
||||
|
||||
internal class DefaultProjectStoreImpl(override val project: ProjectImpl, private val pathMacroManager: PathMacroManager) : ComponentStoreImpl() {
|
||||
companion object {
|
||||
const val FILE_SPEC = "${APP_CONFIG}/project.default.xml"
|
||||
private const val FILE_SPEC = "${APP_CONFIG}/project.default.xml"
|
||||
|
||||
private class DefaultProjectStorage(file: Path, fileSpec: String, pathMacroManager: PathMacroManager) : FileBasedStorage(file, fileSpec, "defaultProject", pathMacroManager.createTrackingSubstitutor(), RoamingType.DISABLED) {
|
||||
override public fun loadLocalData(): Element? {
|
||||
val element = super.loadLocalData() ?: return null
|
||||
try {
|
||||
return element.getChild("component").getChild("defaultProject")
|
||||
}
|
||||
catch (e: NullPointerException) {
|
||||
LOG.warn("Cannot read default project")
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
override fun createSaveSession(states: StateMap) = object : FileBasedStorage.FileSaveSession(states, this) {
|
||||
override fun saveLocally(element: Element?) {
|
||||
super.saveLocally(element?.let {
|
||||
Element("application")
|
||||
.addContent(Element("component").setAttribute("name", "ProjectManager").addContent(it))
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class DefaultProjectStoreImpl(override val project: ProjectImpl, private val pathMacroManager: PathMacroManager) : ComponentStoreImpl() {
|
||||
// see note about default state in project store
|
||||
override val loadPolicy: StateLoadPolicy
|
||||
get() = if (ApplicationManager.getApplication().isUnitTestMode) StateLoadPolicy.NOT_LOAD else StateLoadPolicy.LOAD
|
||||
@@ -38,25 +58,6 @@ internal class DefaultProjectStoreImpl(override val project: ProjectImpl, privat
|
||||
|
||||
private val storage by lazy { DefaultProjectStorage(Paths.get(ApplicationManager.getApplication().stateStore.stateStorageManager.expandMacros(FILE_SPEC)), FILE_SPEC, pathMacroManager) }
|
||||
|
||||
private class DefaultProjectStorage(file: Path, fileSpec: String, pathMacroManager: PathMacroManager) : FileBasedStorage(file, fileSpec, "defaultProject", pathMacroManager.createTrackingSubstitutor(), RoamingType.DISABLED) {
|
||||
override public fun loadLocalData(): Element? {
|
||||
val element = super.loadLocalData() ?: return null
|
||||
try {
|
||||
return element.getChild("component").getChild("defaultProject")
|
||||
}
|
||||
catch (e: NullPointerException) {
|
||||
LOG.warn("Cannot read default project")
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
override fun createSaveSession(states: StateMap) = object : FileBasedStorage.FileSaveSession(states, this) {
|
||||
override fun saveLocally(element: Element?) {
|
||||
super.saveLocally(element?.let { Element("application").addContent(Element("component").setAttribute("name", "ProjectManager").addContent(it))})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override val storageManager = object : StateStorageManager {
|
||||
override fun addStreamProvider(provider: StreamProvider, first: Boolean) {
|
||||
}
|
||||
@@ -87,24 +88,25 @@ internal class DefaultProjectStoreImpl(override val project: ProjectImpl, privat
|
||||
|
||||
override fun setPath(path: String) {
|
||||
}
|
||||
}
|
||||
|
||||
private class MyExternalizationSession(val externalizationSession: StateStorage.ExternalizationSession) : StateStorageManager.ExternalizationSession {
|
||||
override fun setState(storageSpecs: List<Storage>, component: Any, componentName: String, state: Any) {
|
||||
externalizationSession.setState(component, componentName, state)
|
||||
}
|
||||
|
||||
override fun setStateInOldStorage(component: Any, componentName: String, state: Any) {
|
||||
externalizationSession.setState(component, componentName, state)
|
||||
}
|
||||
|
||||
override fun createSaveSessions() = listOfNotNull(externalizationSession.createSaveSession())
|
||||
private class MyExternalizationSession(val externalizationSession: StateStorage.ExternalizationSession) : StateStorageManager.ExternalizationSession {
|
||||
override fun setState(storageSpecs: List<Storage>, component: Any, componentName: String, state: Any) {
|
||||
externalizationSession.setState(component, componentName, state)
|
||||
}
|
||||
|
||||
override fun setStateInOldStorage(component: Any, componentName: String, state: Any) {
|
||||
externalizationSession.setState(component, componentName, state)
|
||||
}
|
||||
|
||||
override fun createSaveSessions() = listOfNotNull(externalizationSession.createSaveSession())
|
||||
}
|
||||
|
||||
// ExportSettingsAction checks only "State" annotation presence, but doesn't require PersistentStateComponent implementation, so, we can just specify annotation
|
||||
@State(name = "ProjectManager", storages = arrayOf(Storage(DefaultProjectStoreImpl.FILE_SPEC)))
|
||||
@State(name = "ProjectManager", storages = arrayOf(Storage(FILE_SPEC)))
|
||||
private class DefaultProjectExportableAndSaveTrigger : SettingsSavingComponent {
|
||||
@Volatile var project: Project? = null
|
||||
@Volatile
|
||||
var project: Project? = null
|
||||
|
||||
override fun save() {
|
||||
// we must trigger save
|
||||
|
||||
Reference in New Issue
Block a user