From a6f1e54255f52a411a02bb1b1818b92cbcbae36f Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 9 May 2021 22:27:52 +0300 Subject: [PATCH] Update descriptor cache --- dataforge-meta/api/dataforge-meta.api | 3 ++- .../dataforge/meta/descriptors/NodeDescriptor.kt | 9 +++++++-- .../dataforge/meta/descriptors/DescriptorTest.kt | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dataforge-meta/api/dataforge-meta.api b/dataforge-meta/api/dataforge-meta.api index 69e86fb8..c2362a0d 100644 --- a/dataforge-meta/api/dataforge-meta.api +++ b/dataforge-meta/api/dataforge-meta.api @@ -548,8 +548,8 @@ public final class space/kscience/dataforge/meta/descriptors/ItemDescriptorKt { public abstract interface class space/kscience/dataforge/meta/descriptors/NodeDescriptor : space/kscience/dataforge/meta/descriptors/ItemDescriptor { public static final field Companion Lspace/kscience/dataforge/meta/descriptors/NodeDescriptor$Companion; - public fun defaultMeta ()Lspace/kscience/dataforge/meta/Laminate; public abstract fun getDefault ()Lspace/kscience/dataforge/meta/Config; + public abstract fun getDefaultMeta ()Lspace/kscience/dataforge/meta/Laminate; public abstract fun getItems ()Ljava/util/Map; public abstract fun getNodes ()Ljava/util/Map; public abstract fun getRequired ()Z @@ -567,6 +567,7 @@ public final class space/kscience/dataforge/meta/descriptors/NodeDescriptorBuild public synthetic fun build ()Lspace/kscience/dataforge/meta/descriptors/ItemDescriptor; public fun build ()Lspace/kscience/dataforge/meta/descriptors/NodeDescriptor; public fun getDefault ()Lspace/kscience/dataforge/meta/Config; + public fun getDefaultMeta ()Lspace/kscience/dataforge/meta/Laminate; public fun getDefaultValue ()Lspace/kscience/dataforge/meta/TypedMetaItem; public fun getItems ()Ljava/util/Map; public fun getNodes ()Ljava/util/Map; diff --git a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/NodeDescriptor.kt b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/NodeDescriptor.kt index ca86e36d..772ae221 100644 --- a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/NodeDescriptor.kt +++ b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/NodeDescriptor.kt @@ -61,7 +61,7 @@ public sealed interface NodeDescriptor : ItemDescriptor { /** * Generate a laminate representing default item set generated by this descriptor */ - public fun defaultMeta(): Laminate = Laminate(default, DescriptorMeta(this)) + public val defaultMeta: Laminate public companion object { @@ -187,10 +187,15 @@ public class NodeDescriptorBuilder(config: Config = Config()) : ItemDescriptorBu value(name.toName(), block) } + /** + * Generate a laminate representing default item set generated by this descriptor + */ + override val defaultMeta: Laminate by lazy { Laminate(default, DescriptorMeta(this)) } + /** * Build a default [MetaItemNode] from this node descriptor */ - override val defaultValue: MetaItem by lazy { MetaItemNode(defaultMeta()) } + override val defaultValue: MetaItem get() = MetaItemNode(defaultMeta) override fun build(): NodeDescriptor = NodeDescriptorBuilder(config.copy()) diff --git a/dataforge-meta/src/commonTest/kotlin/space/kscience/dataforge/meta/descriptors/DescriptorTest.kt b/dataforge-meta/src/commonTest/kotlin/space/kscience/dataforge/meta/descriptors/DescriptorTest.kt index 7263ead6..c9ff52cb 100644 --- a/dataforge-meta/src/commonTest/kotlin/space/kscience/dataforge/meta/descriptors/DescriptorTest.kt +++ b/dataforge-meta/src/commonTest/kotlin/space/kscience/dataforge/meta/descriptors/DescriptorTest.kt @@ -36,7 +36,7 @@ class DescriptorTest { @Test fun testDefaultMetaNode(){ - val meta = descriptor.defaultMeta() + val meta = descriptor.defaultMeta assertEquals(false, meta["aNode.otherNode.otherValue"].boolean) } } \ No newline at end of file