From 0edc8e98e274aadadc09f58f26beac2557eb3659 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 22 May 2011 17:21:36 +0200 Subject: some changes --- bank-eiffel/account.e | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'bank-eiffel/account.e') diff --git a/bank-eiffel/account.e b/bank-eiffel/account.e index 6c81313..154a1fa 100644 --- a/bank-eiffel/account.e +++ b/bank-eiffel/account.e @@ -23,7 +23,7 @@ feature -- Access transfer_minamount: REAL_64 assign set_transfer_minamount -- Mindestbetrag für jede Einzahlung, Auszahlung und Überweisung - authorized_signers: SET [PERSON] + authorized_signers: ARRAYED_SET [PERSON] -- Zeichnungsberechtigte attribute Result := ({like authorized_signers}).default end --| Remove line when Void Safety is properly set @@ -39,11 +39,13 @@ feature -- Access balance: REAL_64 -- Kontostand -feature -- Initialization +feature {NONE} -- Initialization make (an_authorized_signer: PERSON) do + create authorized_signers.make(1) add_authorized_signer (an_authorized_signer) + transfer_minamount := 2 balance := 0 end @@ -67,21 +69,19 @@ feature -- Basic operations do balance := balance - an_amount ensure - balance_increased: balance < old balance + balance_decreased: balance < old balance withdrawed: balance = old balance - an_amount creditline_ok: balance >= creditline end -feature -- Element change - - set_transfer_minamount (a_transfer_minamount: like transfer_minamount) - -- Assign `transfer_minamount' with `a_transfer_minamount'. + transfer(an_amount: like transfer_minamount; an_account: like Current) require - a_transfer_minamount_positive: a_transfer_minamount > 0.0 + an_amount_positive: an_amount > 0.0 + transfer_minamount_ok: an_amount >= transfer_minamount + an_account_attached: an_account /= Void do - transfer_minamount := a_transfer_minamount - ensure - transfer_minamount_assigned: transfer_minamount = a_transfer_minamount + withdraw (an_amount) + an_account.deposit (an_amount) end add_authorized_signer (an_authorized_signer: PERSON) @@ -105,6 +105,18 @@ feature -- Element change authorized_signers_assigned: not authorized_signers.has (an_authorized_signer) end +feature {NONE} -- Implementation + + set_transfer_minamount (a_transfer_minamount: like transfer_minamount) + -- Assign `transfer_minamount' with `a_transfer_minamount'. + require + a_transfer_minamount_positive: a_transfer_minamount > 0.0 + do + transfer_minamount := a_transfer_minamount + ensure + transfer_minamount_assigned: transfer_minamount = a_transfer_minamount + end + set_creditline (a_creditline: like creditline) -- Assign `creditline' with `a_creditline'. do -- cgit v1.2.3