blob: 7885882d30449dc7fb247352fecf41c59d6e8ff5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
case class Property[T](private var t: T) {
var beforeChanges: List[(T, T) => Unit] = Nil
var afterChanges: List[T => Unit] = Nil
def apply = t
def update(t2: T) = {
beforeChanges foreach (_(t, t2))
t = t2
afterChanges foreach (_(t2))
}
}
object Test
{
def main(args: Array[String]): Unit = {
val x = Property(10)
x update 25
assert(x.apply == 25)
}
}
|