aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/model
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin/model')
-rw-r--r--core/src/main/kotlin/model/properties/PropertyContainer.kt7
1 files changed, 5 insertions, 2 deletions
diff --git a/core/src/main/kotlin/model/properties/PropertyContainer.kt b/core/src/main/kotlin/model/properties/PropertyContainer.kt
index d30c6844..7fa46ccb 100644
--- a/core/src/main/kotlin/model/properties/PropertyContainer.kt
+++ b/core/src/main/kotlin/model/properties/PropertyContainer.kt
@@ -14,8 +14,10 @@ class PropertyContainer<C : Any> internal constructor(
else -> throw ClassCastException("Property for $key stored under not matching key type.")
}
+ inline fun <reified T : Any> allOfType(): List<T> = map.values.filterIsInstance<T>()
+
companion object {
- fun <T: Any> empty(): PropertyContainer<T> = PropertyContainer(emptyMap())
+ fun <T : Any> empty(): PropertyContainer<T> = PropertyContainer(emptyMap())
}
}
@@ -41,7 +43,8 @@ fun <C> C.mergeExtras(left: C, right: C): C where C : Any, C : WithExtraProperti
strategies.firstIsInstanceOrNull<MergeStrategy.Fail>()?.error?.invoke()
- val replaces: List<ExtraProperty<C>> = strategies.filterIsInstance<MergeStrategy.Replace<C>>().map { it.newProperty }
+ val replaces: List<ExtraProperty<C>> =
+ strategies.filterIsInstance<MergeStrategy.Replace<C>>().map { it.newProperty }
val needingFullMerge: List<(preMerged: C, left: C, right: C) -> C> =
strategies.filterIsInstance<MergeStrategy.Full<C>>().map { it.merger }