diff options
Diffstat (limited to 'bank-eiffel/person.e')
| -rw-r--r-- | bank-eiffel/person.e | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/bank-eiffel/person.e b/bank-eiffel/person.e new file mode 100644 index 0000000..5230362 --- /dev/null +++ b/bank-eiffel/person.e | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | note | ||
| 2 | description: "Summary description for {PERSON}." | ||
| 3 | author: "" | ||
| 4 | date: "$Date$" | ||
| 5 | revision: "$Revision$" | ||
| 6 | |||
| 7 | class | ||
| 8 | PERSON | ||
| 9 | |||
| 10 | feature -- Access | ||
| 11 | |||
| 12 | surename: STRING_8 | ||
| 13 | -- Nachname | ||
| 14 | attribute Result := ({like surename}).default end --| Remove line when Void Safety is properly set | ||
| 15 | |||
| 16 | firstname: STRING_8 assign set_firstname | ||
| 17 | -- Vorname | ||
| 18 | attribute Result := ({like firstname}).default end --| Remove line when Void Safety is properly set | ||
| 19 | |||
| 20 | feature -- Element change | ||
| 21 | |||
| 22 | set_surename (a_surename: like surename) | ||
| 23 | -- Assign `surename' with `a_surename'. | ||
| 24 | require | ||
| 25 | a_surename_not_empty: a_surename /= Void and then not a_surename.is_empty | ||
| 26 | do | ||
| 27 | surename := a_surename | ||
| 28 | ensure | ||
| 29 | surename_assigned: surename = a_surename | ||
| 30 | end | ||
| 31 | |||
| 32 | set_firstname (a_firstname: like firstname) | ||
| 33 | -- Assign `firstname' with `a_firstname'. | ||
| 34 | require | ||
| 35 | a_firstname_not_empty: a_firstname /= Void and then not a_firstname.is_empty | ||
| 36 | do | ||
| 37 | firstname := a_firstname | ||
| 38 | ensure | ||
| 39 | firstname_assigned: firstname = a_firstname | ||
| 40 | end | ||
| 41 | |||
| 42 | invariant | ||
| 43 | firstname_not_empty: firstname /= Void and then not firstname.is_empty | ||
| 44 | surename_not_empty: surename /= Void and then not surename.is_empty | ||
| 45 | end | ||
