numass-framework/numass-viewer/src/main/kotlin/inr/numass/viewer/NumassDataCache.kt

41 lines
1.1 KiB
Kotlin
Raw Normal View History

2017-06-23 16:37:00 +03:00
package inr.numass.viewer
import hep.dataforge.meta.Meta
import hep.dataforge.tables.Table
import inr.numass.data.api.NumassPoint
import inr.numass.data.api.NumassSet
2017-09-21 20:13:05 +03:00
import java.util.*
2017-06-23 16:37:00 +03:00
import java.util.stream.Collectors
import java.util.stream.Stream
/**
* Cached numass data
* Created by darksnake on 23-Jun-17.
*/
2017-09-21 20:13:05 +03:00
class NumassDataCache(val data: NumassSet) : NumassSet {
2017-06-23 16:37:00 +03:00
private val cachedDescription: String by lazy { data.description }
private val cachedMeta: Meta by lazy { data.meta }
private val cachedPoints: List<NumassPoint> by lazy { data.points.collect(Collectors.toList()) }
2017-09-21 20:13:05 +03:00
private val hv: Optional<Table> by lazy { data.hvData }
2017-06-23 16:37:00 +03:00
override fun getPoints(): Stream<NumassPoint> {
2017-06-23 16:37:00 +03:00
return cachedPoints.stream();
}
override fun getDescription(): String {
return cachedDescription
2017-06-23 16:37:00 +03:00
}
override fun meta(): Meta {
return cachedMeta
2017-06-23 16:37:00 +03:00
}
override fun getName(): String {
return data.name;
}
2017-09-21 20:13:05 +03:00
override fun getHvData(): Optional<Table> {
return hv;
2017-06-23 16:37:00 +03:00
}
}