Findryan

Untitled

Dec 9th, 2016
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. public class Deposit extends Transaction
  2. {
  3. private double amount; // amount to deposit
  4. private Keypad keypad; // references to keypad
  5. private DepositSlot depositSlot; // references to deposit slot
  6. private final static int CANCELED = 0; // constant for cancel option
  7.  
  8. // Deposit constructor
  9. public Deposit(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, DepositSlot atmDepositSlot){
  10. // initializes superclass variables
  11. super(userAccountNumber, atmScreen, atmBankDatabase);
  12.  
  13. // initialize references to keypad and deposit slot
  14. keypad = atmKeypad;
  15. depositSlot = atmDepositSlot;
  16. } // end Deposit constructor
  17.  
  18. // perform transaction
  19. @Override
  20. public void execute(){
  21. BankDatabase bankDatabase = getBankDatabase(); // get reference
  22. Screen screen = getScreen(); // get reference
  23.  
  24. amount = promptForDepositAmount(); // get deposit amount from user
  25.  
  26. // check whether the user entered a deposit amount or canceled
  27. if(amount != CANCELED){
  28. // request deposit envelope containing specified amount
  29. screen.displayMessage("\nPlease insert a deposit envelope containing ");
  30. screen.displayDollarAmount(amount);
  31. screen.displayMessage(".");
  32.  
  33. // receive deposit envelope
  34. boolean envelopeReceived = depositSlot.isEnvelopeReceived();
  35.  
  36. // check whether deposit envelope was received
  37. if(envelopeReceived){
  38. screen.displayMessageLine("\nYour envelope has been received.");
  39. screen.displayMessage("NOTE: The money just deposited will not be available until we verify the amount");
  40. screen.displayMessage("of any enclosed cash and your checks clear.");
  41.  
  42. // credit account to reflect the deposit
  43. bankDatabase.credit(getAccountNumber(), amount);
  44. } // end if
  45. else{
  46. // deposit envelope not received
  47. screen.displayMessageLine("\nYou did not insert an envelope");
  48. screen.displayMessageLine("So, the ATM has canceled your transaction.");
  49. } // end else
  50. } // end if
  51. else{
  52. // user canceled instead of entering amount
  53. screen.displayMessageLine("\nCanceling transaction...");
  54. } // end else
  55. } // end method execute
  56.  
  57. // prompt user to enter a deposit amount in cents
  58. private double promptForDepositAmount(){
  59. Screen screen = getScreen(); // get references to screen
  60.  
  61. // display the prompt
  62. screen.displayMessage("\nPlease enter a deposit amount in CENTS (or 0 to cancel)");
  63. int input = keypad.getInput(); // receive input of deposit amount
  64.  
  65. // check whether the user canceled or entered a valid amount
  66. if(input == CANCELED) return CANCELED;
  67. else{
  68. return (double) input / 100; // return dollar amount
  69. } // end else
  70. } // end method
  71. } // end class Deposit
Add Comment
Please, Sign In to add comment