diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/descriptors/DescriptorMeta.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/descriptors/DescriptorMeta.kt index c0b27925..47c90370 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/descriptors/DescriptorMeta.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/descriptors/DescriptorMeta.kt @@ -1,5 +1,6 @@ package hep.dataforge.meta.descriptors +import hep.dataforge.meta.Laminate import hep.dataforge.meta.MetaBase import hep.dataforge.meta.MetaItem import hep.dataforge.names.NameToken @@ -15,8 +16,10 @@ class DescriptorMeta(val descriptor: NodeDescriptor) : MetaBase() { } } +fun NodeDescriptor.buildDefaultMeta() = Laminate(default, DescriptorMeta(this)) + fun NodeDescriptor.defaultItem(): MetaItem.NodeItem<*> = - MetaItem.NodeItem(default ?: DescriptorMeta(this)) + MetaItem.NodeItem(buildDefaultMeta()) fun ValueDescriptor.defaultItem(): MetaItem.ValueItem = MetaItem.ValueItem(default ?: Null) diff --git a/dataforge-meta/src/commonTest/kotlin/hep/dataforge/meta/descriptors/DescriptorTest.kt b/dataforge-meta/src/commonTest/kotlin/hep/dataforge/meta/descriptors/DescriptorTest.kt index 9c022637..605cbebd 100644 --- a/dataforge-meta/src/commonTest/kotlin/hep/dataforge/meta/descriptors/DescriptorTest.kt +++ b/dataforge-meta/src/commonTest/kotlin/hep/dataforge/meta/descriptors/DescriptorTest.kt @@ -1,5 +1,7 @@ package hep.dataforge.meta.descriptors +import hep.dataforge.meta.boolean +import hep.dataforge.meta.get import hep.dataforge.values.ValueType import kotlin.test.Test import kotlin.test.assertEquals @@ -31,4 +33,10 @@ class DescriptorTest { val allowed = descriptor.nodes["aNode"]?.values?.get("b")?.allowedValues assertEquals(emptyList(), allowed) } + + @Test + fun testDefaultMetaNode(){ + val meta = descriptor.buildDefaultMeta() + assertEquals(false, meta["aNode.otherNode.otherValue"].boolean) + } } \ No newline at end of file