1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.beep4j.internal;
17
18 import net.sf.beep4j.CloseChannelCallback;
19
20 public class VerifyingCloseChannelCallback implements CloseChannelCallback {
21 private final CloseChannelCallback target;
22 private boolean complete;
23
24 public VerifyingCloseChannelCallback(CloseChannelCallback callback) {
25 this.target = callback;
26 }
27
28 public void verify() {
29 if (!complete) {
30 throw new IllegalStateException("callback is not complete");
31 }
32 }
33
34 public void closeAccepted() {
35 setComplete();
36 target.closeAccepted();
37 }
38
39 public void closeDeclined(int code, String message) {
40 setComplete();
41 target.closeDeclined(code, message);
42 }
43
44 private void setComplete() {
45 if (complete) {
46 throw new IllegalStateException("callback is complete");
47 }
48 complete = true;
49 }
50 }