diff options
Diffstat (limited to 'test/disabled/properties/src/properties.scala')
-rw-r--r-- | test/disabled/properties/src/properties.scala | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/test/disabled/properties/src/properties.scala b/test/disabled/properties/src/properties.scala deleted file mode 100644 index 35b6a92221..0000000000 --- a/test/disabled/properties/src/properties.scala +++ /dev/null @@ -1,54 +0,0 @@ -/** Illustrate the use of custom 'apply/update' methods. */ -object properties { - - /** A mutable property whose getter and setter may be customized. */ - case class Property[T](init: T) { - private var value: T = init - - /** The getter function, defaults to identity. */ - private var setter: T => T = identity[T] - - /** The setter function, defaults to identity. */ - private var getter: T => T = identity[T] - - /** Retrive the value held in this property. */ - def apply(): T = getter(value) - - /** Update the value held in this property, through the setter. */ - def update(newValue: T) /*?*/ = value = setter(newValue) - - /** Change the getter. */ - def get(newGetter: T => T) /*?*/ = { getter = newGetter; this } - - /** Change the setter */ - def set(newSetter: T => T) = { setter = newSetter; this } - } - - class User { - // Create a property with custom getter and setter - val firstname = Property("")./*!*/get { v => v.toUpperCase() }./*!*/set { v => "Mr. " + v } - val lastname = Property("<noname>") - - /** Scala provides syntactic sugar for calling 'apply'. Simply - * adding a list of arguments between parenthesis (in this case, - * an empty list) is translated to a call to 'apply' with those - * arguments. - */ - override def toString() = firstname() + " " + lastname() - } - - def main(args: Array[String]) { - val user1 = new User - - // Syntactic sugar for 'update': an assignment is translated to a - // call to method 'update' - user1./*!*/firstname() = "Robert" - - val user2 = new User - user2.firstname() = "bob" - user2.lastname() = "KUZ" - - println("user1: " + user1) - println("user2: " + user2) - } -}
\ No newline at end of file |