summaryrefslogtreecommitdiff
path: root/test/disabled/presentation/timeofday/src/timeofday.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/disabled/presentation/timeofday/src/timeofday.scala')
-rw-r--r--test/disabled/presentation/timeofday/src/timeofday.scala35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/disabled/presentation/timeofday/src/timeofday.scala b/test/disabled/presentation/timeofday/src/timeofday.scala
new file mode 100644
index 0000000000..d6355097f1
--- /dev/null
+++ b/test/disabled/presentation/timeofday/src/timeofday.scala
@@ -0,0 +1,35 @@
+object timeofday {
+ class DateError extends Exception
+
+ /** Simulating properties in Scala
+ * (example 4.2.1 in ScalaReference.pdf)
+ */
+ class TimeOfDayVar {
+ private var h, m, s: Int = 0
+
+ def hours = h
+
+ /** A method 'ident_=' is a setter for 'ident'. 'code.ident = ...' will
+ * be translated to a call to 'ident_='
+ */
+ def hours_= (h: Int) =
+ if (0 <= h && h < 24) this.h = h
+ else throw new DateError()
+
+ def minutes = m
+ def minutes_= (m: Int) =
+ if (0 <= m && m < 60) this.m = m
+ else throw new DateError()
+
+ def seconds = s
+ def seconds_= (s: Int) =
+ if (0 <= s && s < 60) this./*!*/s = s
+ else throw new DateError()
+ }
+
+ def main(args: Array[String]) {
+ val d = new TimeOfDayVar
+ d.hours = 8; d./*!*/minutes = 30; d.seconds = 0
+ d.hours/*#*/ = 25 // throws a DateError exception
+ }
+} \ No newline at end of file