forked from rick2785/JavaCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathATMMachine.java
More file actions
83 lines (49 loc) · 1.31 KB
/
ATMMachine.java
File metadata and controls
83 lines (49 loc) · 1.31 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public class ATMMachine implements GetATMData {
ATMState hasCard;
ATMState noCard;
ATMState hasCorrectPin;
ATMState atmOutOfMoney;
ATMState atmState;
int cashInMachine = 2000;
boolean correctPinEntered = false;
public ATMMachine(){
hasCard = new HasCard(this);
noCard = new NoCard(this);
hasCorrectPin = new HasPin(this);
atmOutOfMoney = new NoCash(this);
atmState = noCard;
if(cashInMachine < 0){
atmState = atmOutOfMoney;
}
}
void setATMState(ATMState newATMState){
atmState = newATMState;
}
public void setCashInMachine(int newCashInMachine){
cashInMachine = newCashInMachine;
}
public void insertCard() {
atmState.insertCard();
}
public void ejectCard() {
atmState.ejectCard();
}
public void requestCash(int cashToWithdraw) {
atmState.requestCash(cashToWithdraw);
}
public void insertPin(int pinEntered){
atmState.insertPin(pinEntered);
}
public ATMState getYesCardState() { return hasCard; }
public ATMState getNoCardState() { return noCard; }
public ATMState getHasPin() { return hasCorrectPin; }
public ATMState getNoCashState() { return atmOutOfMoney; }
@Override
public ATMState getATMState() {
return atmState;
}
@Override
public int getCashInMachine() {
return cashInMachine;
}
}