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()
}
}