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

com.zepben.evolve.services.common.Difference.kt Maven / Gradle / Ivy

There is a newer version: 0.24.0rc1
Show newest version
/*
 * Copyright 2020 Zeppelin Bend Pty Ltd
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

package com.zepben.evolve.services.common

import com.zepben.evolve.cim.iec61970.base.core.IdentifiedObject

sealed class Difference

data class ValueDifference(val sourceValue: Any?, val targetValue: Any?) : Difference()

data class CollectionDifference @JvmOverloads constructor(
    val missingFromTarget: MutableList = mutableListOf(),
    val missingFromSource: MutableList = mutableListOf(),
    val modifications: MutableList = mutableListOf()
) : Difference()

data class ObjectDifference @JvmOverloads constructor(
    val source: T,
    val target: T,
    val differences: MutableMap = mutableMapOf()
) : Difference()

data class ReferenceDifference(val source: IdentifiedObject?, val targetValue: IdentifiedObject?) : Difference()

data class IndexedDifference(val index: Int, val difference: Difference) : Difference()




© 2015 - 2024 Weber Informatics LLC | Privacy Policy