From 7a9f7da7f289a343283120733e000234b3b7c4bc Mon Sep 17 00:00:00 2001 From: darksnake Date: Sat, 26 Dec 2020 10:35:24 +0300 Subject: [PATCH] Scheme empty check moved to extension --- dataforge-meta/api/dataforge-meta.api | 2 +- .../src/commonMain/kotlin/hep/dataforge/meta/Scheme.kt | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dataforge-meta/api/dataforge-meta.api b/dataforge-meta/api/dataforge-meta.api index 0f94e3bd..2b0ea50f 100644 --- a/dataforge-meta/api/dataforge-meta.api +++ b/dataforge-meta/api/dataforge-meta.api @@ -447,7 +447,6 @@ public class hep/dataforge/meta/Scheme : hep/dataforge/meta/MetaRepr, hep/datafo public synthetic fun getDescriptor ()Lhep/dataforge/meta/descriptors/ItemDescriptor; public final fun getDescriptor ()Lhep/dataforge/meta/descriptors/NodeDescriptor; public fun getItem (Lhep/dataforge/names/Name;)Lhep/dataforge/meta/TypedMetaItem; - public final fun isEmpty ()Z public final fun setDescriptor (Lhep/dataforge/meta/descriptors/NodeDescriptor;)V public fun setItem (Lhep/dataforge/names/Name;Lhep/dataforge/meta/TypedMetaItem;)V public fun toMeta ()Lhep/dataforge/meta/Laminate; @@ -459,6 +458,7 @@ public final class hep/dataforge/meta/SchemeKt { public static final fun inflate (Lhep/dataforge/meta/Specification;Lhep/dataforge/meta/MutableItemProvider;Lhep/dataforge/meta/ItemProvider;Lhep/dataforge/meta/descriptors/NodeDescriptor;)Lhep/dataforge/meta/Scheme; public static synthetic fun inflate$default (Lhep/dataforge/meta/Specification;Lhep/dataforge/meta/MutableItemProvider;Lhep/dataforge/meta/ItemProvider;Lhep/dataforge/meta/descriptors/NodeDescriptor;ILjava/lang/Object;)Lhep/dataforge/meta/Scheme; public static final fun invoke (Lhep/dataforge/meta/Scheme;Lkotlin/jvm/functions/Function1;)Lhep/dataforge/meta/Scheme; + public static final fun isEmpty (Lhep/dataforge/meta/Scheme;)Z } public class hep/dataforge/meta/SchemeSpec : hep/dataforge/meta/Specification, hep/dataforge/meta/descriptors/Described { diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Scheme.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Scheme.kt index fcaf5f15..8875e762 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Scheme.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Scheme.kt @@ -77,10 +77,12 @@ public open class Scheme() : MutableItemProvider, Described, MetaRepr { } override fun toMeta(): Laminate = Laminate(items[Name.EMPTY].node, defaultLayer) - - public fun isEmpty(): Boolean = toMeta().isEmpty() } +/** + * The scheme is considered empty only if its root item does not exist. + */ +public fun Scheme.isEmpty(): Boolean = rootItem == null public fun > S.inflate( items: MutableItemProvider,