From fc55dc2e95bcea03fbc0d8e1d130c9e53f3f1dad Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 17 Jan 2016 17:00:26 +0100 Subject: merge default into stable --- tests/examplefiles/example.kt | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/examplefiles/example.kt (limited to 'tests/examplefiles/example.kt') diff --git a/tests/examplefiles/example.kt b/tests/examplefiles/example.kt new file mode 100644 index 00000000..59291333 --- /dev/null +++ b/tests/examplefiles/example.kt @@ -0,0 +1,47 @@ +package addressbook + +class Contact( + val name : String, + val emails : List, + val addresses : List, + val phonenums : List +) + +class EmailAddress( + val user : String, + val host : String +) + +class PostalAddress( + val streetAddress : String, + val city : String, + val zip : String, + val state : USState?, + val country : Country +) { + assert {(state == null) xor (country == Countries["US"]) } +} + +class PhoneNumber( + val country : Country, + val areaCode : Int, + val number : Long +) + +object Countries { + fun get(id : CountryID) : Country = countryTable[id] + + private var table : Map? = null + private val countryTable : Map + get() { + if (table == null) { + table = HashMap() + for (line in TextFile("countries.txt").lines(stripWhiteSpace = true)) { + table[line] = Country(line) + } + } + return table + } +} + +class Country(val name : String) \ No newline at end of file -- cgit v1.2.1