All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.testerum.file_service.file.SettingsFileService.kt Maven / Gradle / Ivy

package com.testerum.file_service.file

import com.testerum.common_jdk.asMap
import com.testerum.common_kotlin.createDirectories
import com.testerum.common_kotlin.deleteIfExists
import com.testerum.common_kotlin.exists
import java.nio.file.Files
import java.util.*
import java.nio.file.Path as JavaPath

class SettingsFileService {

    companion object {
        private const val SETTINGS_FILENAME = "testerum.properties"
    }

    fun fileExists(settingsDir: JavaPath): Boolean {
        val settingsFile = settingsDir.resolve(SETTINGS_FILENAME)

        return settingsFile.exists
    }

    fun saveSettings(settingsToSave: Map,
                     settingsDir: JavaPath): Map {
        val settingsFile = settingsDir.resolve(SETTINGS_FILENAME)
        settingsFile.parent.createDirectories()

        val properties = settingsToSave.toProperties()
        Files.newBufferedWriter(settingsFile).use {
            properties.store(it, null)
        }

        return settingsToSave
    }

    fun loadSettings(settingsDir: JavaPath): Map {
        val settingsFile = settingsDir.resolve(SETTINGS_FILENAME)

        if (!Files.exists(settingsFile)) {
            return emptyMap()
        }

        val properties = Properties()

        Files.newBufferedReader(settingsFile).use {
            properties.load(it)
        }

        return properties.asMap()
    }

    fun deleteSettings(settingsDir: JavaPath) {
        val settingsFile = settingsDir.resolve(SETTINGS_FILENAME)

        settingsFile.deleteIfExists()
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy