
tech.harmonysoft.oss.common.data.impl.DefaultComparisonStrategy.kt Maven / Gradle / Ivy
package tech.harmonysoft.oss.common.data.impl
import tech.harmonysoft.oss.common.data.ComparisonStrategy
import tech.harmonysoft.oss.common.type.TypeManagerContext
import tech.harmonysoft.oss.common.type.TypeManagersHelper
import kotlin.reflect.KClass
class DefaultComparisonStrategy(
private val typeManagersHelper: TypeManagersHelper,
private val contexts: Set
) : ComparisonStrategy {
override fun compare(targetType: KClass, first: T?, second: T?): Int? {
return when {
first == null && second == null -> 0
first != null -> typeManagersHelper.getTypeManager(targetType, contexts).compareTo(first, second)
second != null -> ComparisonStrategy.inverse(
typeManagersHelper.getTypeManager(targetType, contexts).compareTo(second, first)
)
else -> throw UnsupportedOperationException("I can't happen")
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy