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

jp.nephy.kchroner.plugin.PluginsStorage.kt Maven / Gradle / Ivy

package jp.nephy.kchroner.plugin

import java.io.Closeable
import java.nio.file.Path
import java.util.concurrent.CopyOnWriteArraySet

internal class PluginsStorage: Registrable, Closeable {
    private val plugins = CopyOnWriteArraySet()

    override fun register(target: Plugin): Boolean {
        return plugins.add(target)
    }

    override fun unregister(target: Plugin): Boolean {
        return plugins.remove(target)
    }

    fun query(path: Path): Plugin? {
        return plugins.find { it.path == path }
    }

    override fun close() {
        plugins.forEach { it.close() }
        plugins.clear()
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy