in dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt [1199:1218]
fun setChild(
parent: TransientEntity,
parentToChildLinkName: String,
childToParentLinkName: String,
child: TransientEntity
) {
addChangeAndRun {
if (removeChildFromCurrentParentInternal(child, childToParentLinkName, parentToChildLinkName, parent)) {
val oldChild = parent.getLink(parentToChildLinkName) as TransientEntity?
if (oldChild != null) {
removeChildFromParentInternal(parent, parentToChildLinkName, childToParentLinkName, oldChild)
}
setLinkInternal(parent, parentToChildLinkName, child)
setLinkInternal(child, childToParentLinkName, parent)
setPropertyInternal(child, PARENT_TO_CHILD_LINK_NAME, parentToChildLinkName)
setPropertyInternal(child, CHILD_TO_PARENT_LINK_NAME, childToParentLinkName)
}
true
}
}