Move scheme descriptors to core
This commit is contained in:
parent
24187722e4
commit
67554a8c98
@ -90,9 +90,8 @@ public class MetaDescriptorBuilder internal constructor() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun MetaDescriptorBuilder.item(name: String, block: MetaDescriptorBuilder.() -> Unit) {
|
public fun MetaDescriptorBuilder.item(name: String, block: MetaDescriptorBuilder.() -> Unit): MetaDescriptorBuilder =
|
||||||
item(Name.parse(name), block)
|
item(Name.parse(name), block)
|
||||||
}
|
|
||||||
|
|
||||||
public fun MetaDescriptor(block: MetaDescriptorBuilder.() -> Unit): MetaDescriptor =
|
public fun MetaDescriptor(block: MetaDescriptorBuilder.() -> Unit): MetaDescriptor =
|
||||||
MetaDescriptorBuilder().apply(block).build()
|
MetaDescriptorBuilder().apply(block).build()
|
||||||
|
@ -9,34 +9,32 @@ import kotlin.reflect.typeOf
|
|||||||
public inline fun <S : Scheme, reified T> MetaDescriptorBuilder.value(
|
public inline fun <S : Scheme, reified T> MetaDescriptorBuilder.value(
|
||||||
property: KProperty1<S, T>,
|
property: KProperty1<S, T>,
|
||||||
noinline block: MetaDescriptorBuilder.() -> Unit = {},
|
noinline block: MetaDescriptorBuilder.() -> Unit = {},
|
||||||
) {
|
): MetaDescriptorBuilder = when (typeOf<T>()) {
|
||||||
when (typeOf<T>()) {
|
typeOf<Number>(), typeOf<Int>(), typeOf<Double>(), typeOf<Short>(), typeOf<Long>(), typeOf<Float>() ->
|
||||||
typeOf<Number>(), typeOf<Int>(), typeOf<Double>(), typeOf<Short>(), typeOf<Long>(), typeOf<Float>() ->
|
value(property.name, ValueType.NUMBER) {
|
||||||
value(property.name, ValueType.NUMBER) {
|
|
||||||
block()
|
|
||||||
}
|
|
||||||
typeOf<Number?>(), typeOf<Int?>(), typeOf<Double?>(), typeOf<Short?>(), typeOf<Long?>(), typeOf<Float?>() ->
|
|
||||||
value(property.name, ValueType.NUMBER) {
|
|
||||||
block()
|
|
||||||
}
|
|
||||||
typeOf<Boolean>() -> value(property.name, ValueType.BOOLEAN) {
|
|
||||||
block()
|
block()
|
||||||
}
|
}
|
||||||
typeOf<List<Number>>(), typeOf<List<Int>>(), typeOf<List<Double>>(), typeOf<List<Short>>(), typeOf<List<Long>>(), typeOf<List<Float>>(),
|
typeOf<Number?>(), typeOf<Int?>(), typeOf<Double?>(), typeOf<Short?>(), typeOf<Long?>(), typeOf<Float?>() ->
|
||||||
typeOf<IntArray>(), typeOf<DoubleArray>(), typeOf<ShortArray>(), typeOf<LongArray>(), typeOf<FloatArray>(),
|
value(property.name, ValueType.NUMBER) {
|
||||||
-> value(property.name, ValueType.NUMBER) {
|
|
||||||
multiple = true
|
|
||||||
block()
|
block()
|
||||||
}
|
}
|
||||||
typeOf<String>() -> value(property.name, ValueType.STRING) {
|
typeOf<Boolean>() -> value(property.name, ValueType.BOOLEAN) {
|
||||||
block()
|
block()
|
||||||
}
|
|
||||||
typeOf<List<String>>(), typeOf<Array<String>>() -> value(property.name, ValueType.STRING) {
|
|
||||||
multiple = true
|
|
||||||
block()
|
|
||||||
}
|
|
||||||
else -> item(property.name, block)
|
|
||||||
}
|
}
|
||||||
|
typeOf<List<Number>>(), typeOf<List<Int>>(), typeOf<List<Double>>(), typeOf<List<Short>>(), typeOf<List<Long>>(), typeOf<List<Float>>(),
|
||||||
|
typeOf<IntArray>(), typeOf<DoubleArray>(), typeOf<ShortArray>(), typeOf<LongArray>(), typeOf<FloatArray>(),
|
||||||
|
-> value(property.name, ValueType.NUMBER) {
|
||||||
|
multiple = true
|
||||||
|
block()
|
||||||
|
}
|
||||||
|
typeOf<String>() -> value(property.name, ValueType.STRING) {
|
||||||
|
block()
|
||||||
|
}
|
||||||
|
typeOf<List<String>>(), typeOf<Array<String>>() -> value(property.name, ValueType.STRING) {
|
||||||
|
multiple = true
|
||||||
|
block()
|
||||||
|
}
|
||||||
|
else -> item(property.name, block)
|
||||||
}
|
}
|
||||||
|
|
||||||
public inline fun <S : Scheme, reified T : Scheme> MetaDescriptorBuilder.scheme(
|
public inline fun <S : Scheme, reified T : Scheme> MetaDescriptorBuilder.scheme(
|
||||||
|
Loading…
Reference in New Issue
Block a user