Files
orx/orx-jvm/orx-olive/src/main/kotlin/Resources.kt
2021-06-22 11:08:07 +02:00

29 lines
810 B
Kotlin

package org.openrndr.extra.olive
import java.io.File
class Resources(val filterOutExtensions: List<String> = listOf()) {
private val watchedResources = mutableMapOf<File, Boolean>()
fun watch(src: File, watchFn: (file: File) -> Unit) {
src.listFiles()!!.forEach {file ->
if (file.isFile && !filterOutExtensions.contains(file.extension)) {
watchedResources[file] = false
watchFn(file)
} else if (file.isDirectory) {
watch(file, watchFn)
}
}
}
operator fun get(file: File): Boolean? {
return watchedResources[file]
}
operator fun set(file: File, value: Boolean) {
if (watchedResources.containsKey(file)) {
watchedResources[file] = value
}
}
}