From 578ff805a4e7aceb579b1b40e6196455d9df6a54 Mon Sep 17 00:00:00 2001 From: manuel Date: Fri, 20 May 2011 17:58:09 +0200 Subject: add some generated stuff --- bank-eiffel/account.e | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++ bank-eiffel/person.e | 45 +++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 bank-eiffel/account.e create mode 100644 bank-eiffel/person.e diff --git a/bank-eiffel/account.e b/bank-eiffel/account.e new file mode 100644 index 0000000..578aec2 --- /dev/null +++ b/bank-eiffel/account.e @@ -0,0 +1,75 @@ +note + description: "Summary description for {ACCOUNT}." + author: "" + date: "$Date$" + revision: "$Revision$" + +class + ACCOUNT + +inherit + + +feature -- Access + + authorized_signers: SET [PERSON] assign set_authorized_signers + -- Zeichnungsberechtigte + attribute Result := ({like authorized_signers}).default end --| Remove line when Void Safety is properly set + + balance: REAL_64 + -- Kontostand + + creditline: REAL_64 assign set_creditline + -- Kreditrahmen + + interest_deposit: REAL_32 assign set_interest_deposit + -- Habenverzinsung + + interest_debit: REAL_32 assign set_interest_debit + -- Sollverzinsung + +feature -- Element change + + set_authorized_signers (an_authorized_signers: like authorized_signers) + -- Assign `authorized_signers' with `an_authorized_signers'. + require + an_authorized_signers_attached: an_authorized_signers /= Void + do + authorized_signers := an_authorized_signers + ensure + authorized_signers_assigned: authorized_signers = an_authorized_signers + end + + set_creditline (a_creditline: like creditline) + -- Assign `creditline' with `a_creditline'. + do + creditline := a_creditline + ensure + creditline_assigned: creditline = a_creditline + end + + set_interest_deposit (an_interest_deposit: like interest_deposit) + -- Assign `interest_deposit' with `an_interest_deposit'. + require + an_interest_deposit_within_bounds: an_interest_deposit >= 0.0 and an_interest_deposit <= 1.0 + do + interest_deposit := an_interest_deposit + ensure + interest_deposit_assigned: interest_deposit = an_interest_deposit + end + + set_interest_debit (an_interest_debit: like interest_debit) + -- Assign `interest_debit' with `an_interest_debit'. + require + an_interest_debit_within_bounds: an_interest_debit >= 0.0 and an_interest_debit <= 1.0 + do + interest_debit := an_interest_debit + ensure + interest_debit_assigned: interest_debit = an_interest_debit + end + +invariant + interest_debit_within_bounds: interest_debit >= 0.0 and interest_debit <= 1.0 + interest_deposit_within_bounds: interest_deposit >= 0.0 and interest_deposit <= 1.0 + authorized_signers_attached: authorized_signers /= Void +end 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 @@ +note + description: "Summary description for {PERSON}." + author: "" + date: "$Date$" + revision: "$Revision$" + +class + PERSON + +feature -- Access + + surename: STRING_8 + -- Nachname + attribute Result := ({like surename}).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 -- Element change + + set_surename (a_surename: like surename) + -- Assign `surename' with `a_surename'. + require + a_surename_not_empty: a_surename /= Void and then not a_surename.is_empty + do + surename := a_surename + ensure + surename_assigned: surename = a_surename + 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 + surename_not_empty: surename /= Void and then not surename.is_empty +end -- cgit v1.2.3