Newer
Older
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
package lecture_18_repetition;
public class AirLock implements IAirLock{
private Door inner;
private Door outer;
public AirLock() {
inner = new Door();
outer = new Door();
}
Door getInner() {
return inner;
}
@Override
public void openInner() {
openDoor(inner);
}
@Override
public void openOuter() {
openDoor(outer);
}
private void openDoor(Door door) {
if(!inner.isOpen() && !outer.isOpen())
door.open();
else
System.out.println("Can not open both at the same time");
}
@Override
public void closeInner() {
inner.close();
}
@Override
public void closeOuter() {
outer.close();
}
@Override
public boolean innerIsOpen() {
return inner.isOpen();
}
@Override
public boolean outerIsOpen() {
return outer.isOpen();
}
@Override
public void lockInner() {
inner.lock();
}
@Override
public void unLockInner() {
inner.unLock();
}
@Override
public void lockOuter() {
outer.lock();
}
@Override
public void unLockOuter() {
outer.unLock();
}
public static void main(String[] args) {
AirLock doors = new AirLock();
doors.openOuter();
doors.getInner().open();
}
}