fun compare()

in dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/association/OrderedAssociationSemantics.kt [27:44]


    fun compare(left: Entity?, right: Entity?, orderPropertyName: String, cmp: Int): Boolean {
        val leftOrder = left?.reattachTransient()?.getProperty(orderPropertyName)
        val rightOrder = right?.reattachTransient()?.getProperty(orderPropertyName)

        val cmpResult = when {
            leftOrder != null && rightOrder != null -> leftOrder.compareTo(rightOrder)
            leftOrder != null && rightOrder == null -> 1
            leftOrder == null && rightOrder != null -> -1
            else -> 0
        }

        return when (cmp) {
            1 -> cmpResult >= 0
            2 -> cmpResult < 0
            3 -> cmpResult <= 0
            else -> cmpResult > 0
        }
    }