GSculerlor

Deposit.java

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