All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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