summaryrefslogtreecommitdiffstats
path: root/bank-eiffel/person.e
blob: 54e1a457b57f5ca843e88e22e4bb0e004c47f892 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
note
	description: "Summary description for {PERSON}."
	author: ""
	date: "$Date$"
	revision: "$Revision$"

class
	PERSON

create
	make

feature -- Access

	surname: STRING_8 assign set_surname
			-- Nachname
		attribute Result := ({like surname}).default end --| Remove line when Void Safety is properly set

	firstname: STRING_8 assign set_firstname
			-- Vorname
		attribute Result := ({like firstname}).default end --| Remove line when Void Safety is properly set

feature {NONE} -- Initialization

	make (a_surname: like surname; a_firstname: like firstname)
		do
			surname := a_surname
			firstname := a_firstname
		end

feature {NONE} -- Implementation

	set_surname (a_surname: like surname)
			-- Assign `surname' with `a_surname'.
		require
			a_surname_not_empty: a_surname /= Void and then not a_surname.is_empty
		do
			surname := a_surname
		ensure
			surname_assigned: surname = a_surname
		end

	set_firstname (a_firstname: like firstname)
			-- Assign `firstname' with `a_firstname'.
		require
			a_firstname_not_empty: a_firstname /= Void and then not a_firstname.is_empty
		do
			firstname := a_firstname
		ensure
			firstname_assigned: firstname = a_firstname
		end

invariant
	firstname_not_empty: firstname /= Void and then not firstname.is_empty
	surname_not_empty: surname /= Void and then not surname.is_empty
end