More constructors for supplier map/list
This commit is contained in:
parent
cb9454dadb
commit
d29aed077d
@ -1,5 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.core
|
||||
|
||||
import java.util.function.Supplier
|
||||
import java.util.stream.Stream
|
||||
|
||||
class SupplierList<T> : AbstractList<T> {
|
||||
private val getters: Array<() -> T>
|
||||
|
||||
@ -7,8 +10,17 @@ class SupplierList<T> : AbstractList<T> {
|
||||
this.getters = Array(getters.size) { getters[it] }
|
||||
}
|
||||
|
||||
constructor(getters: List<() -> T>) : super() {
|
||||
this.getters = Array(getters.size) { getters[it] }
|
||||
constructor(getters: Collection<() -> T>) : super() {
|
||||
val iterator = getters.iterator()
|
||||
this.getters = Array(getters.size) { iterator.next() }
|
||||
}
|
||||
|
||||
constructor(getters: Stream<() -> T>) : super() {
|
||||
this.getters = getters.toArray(::arrayOfNulls)
|
||||
}
|
||||
|
||||
constructor(vararg getters: Supplier<T>) : super() {
|
||||
this.getters = Array(getters.size) { getters[it]::get }
|
||||
}
|
||||
|
||||
constructor(size: Int, provider: (Int) -> () -> T) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package ru.dbotthepony.mc.otm.core
|
||||
|
||||
import com.google.common.collect.ImmutableSet
|
||||
import java.util.stream.Stream
|
||||
|
||||
class SupplierMap<K, T> : AbstractMap<K, T> {
|
||||
override val entries: Set<Map.Entry<K, T>>
|
||||
@ -13,6 +14,10 @@ class SupplierMap<K, T> : AbstractMap<K, T> {
|
||||
entries = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
||||
}
|
||||
|
||||
constructor(mValues: Stream<Pair<K, () -> T>>) : super() {
|
||||
entries = mValues.map { Entry(it.first, it.second) }.collect(ImmutableSet.toImmutableSet())
|
||||
}
|
||||
|
||||
constructor(mValues: Map<K, () -> T>) : super() {
|
||||
entries = ImmutableSet.copyOf(mValues.map { Entry(it.key, it.value) })
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user