git.fiddlerwoaroof.com
Raw Blame History
package com.company.main

import com.company.main.Main.Person.*
import java.util.concurrent.atomic.AtomicReference

fun main() {
    val x = Main.Person("Bob", "Johnson")
    val y = Main.Person("Alice", "Johnson")
    val xy = Main.Relationship(x, y, "spouse")

    val xyYouName = xy.you.._name

    println("name: ${x.name()}")
    println("status: ${x.status()}")
    println("youLens name: ${xyYouName()}")

    println("youLens name: ${xyYouName()}")

    val personRef = AtomicReference(x)

    println("ref name: ${personRef.get().name()}")
    personRef.updateAndGet { t ->
        t.status.set("feelin'g good")
    }
    println("ref name: ${personRef.get().name()}")
}