-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathProvider.kt
More file actions
23 lines (19 loc) · 817 Bytes
/
Provider.kt
File metadata and controls
23 lines (19 loc) · 817 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package ru.endlesscode.bukkitgradle.extensions
import org.gradle.api.Project
import org.gradle.api.file.Directory
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import java.io.File
import java.util.*
internal fun <T> Property<T>.finalizedOnRead(): Property<T> = apply { finalizeValueOnRead() }
// See: https://github.com/gradle/gradle/issues/12388
@Suppress("UnstableApiUsage")
internal fun <T : Any, R : Any> Provider<T>.mapNotNull(transform: (T) -> R?): Provider<R> {
return map { value: T ->
val transformedValue = transform(value)
Optional.ofNullable(transformedValue)
}
.filter(Optional<R>::isPresent)
.map(Optional<R>::get)
}
internal fun Project.directoryProvider(file: () -> File?): Provider<Directory> = layout.dir(provider(file))