1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.core.filterchain;
21
22 import org.apache.mina.core.filterchain.IoFilter.NextFilter;
23 import org.apache.mina.core.session.IdleStatus;
24 import org.apache.mina.core.session.IoEvent;
25 import org.apache.mina.core.session.IoEventType;
26 import org.apache.mina.core.session.IoSession;
27 import org.apache.mina.core.session.TrafficMask;
28 import org.apache.mina.core.write.WriteRequest;
29
30
31
32
33
34
35
36
37
38 public class IoFilterEvent extends IoEvent {
39
40 private final NextFilter nextFilter;
41
42 public IoFilterEvent(NextFilter nextFilter, IoEventType type,
43 IoSession session, Object parameter) {
44 super(type, session, parameter);
45
46 if (nextFilter == null) {
47 throw new NullPointerException("nextFilter");
48 }
49 this.nextFilter = nextFilter;
50 }
51
52 public NextFilter getNextFilter() {
53 return nextFilter;
54 }
55
56 @Override
57 public void fire() {
58 switch (getType()) {
59 case MESSAGE_RECEIVED:
60 getNextFilter().messageReceived(getSession(), getParameter());
61 break;
62 case MESSAGE_SENT:
63 getNextFilter().messageSent(getSession(), (WriteRequest) getParameter());
64 break;
65 case WRITE:
66 getNextFilter().filterWrite(getSession(), (WriteRequest) getParameter());
67 break;
68 case SET_TRAFFIC_MASK:
69 getNextFilter().filterSetTrafficMask(getSession(), (TrafficMask) getParameter());
70 break;
71 case CLOSE:
72 getNextFilter().filterClose(getSession());
73 break;
74 case EXCEPTION_CAUGHT:
75 getNextFilter().exceptionCaught(getSession(), (Throwable) getParameter());
76 break;
77 case SESSION_IDLE:
78 getNextFilter().sessionIdle(getSession(), (IdleStatus) getParameter());
79 break;
80 case SESSION_OPENED:
81 getNextFilter().sessionOpened(getSession());
82 break;
83 case SESSION_CREATED:
84 getNextFilter().sessionCreated(getSession());
85 break;
86 case SESSION_CLOSED:
87 getNextFilter().sessionClosed(getSession());
88 break;
89 default:
90 throw new IllegalArgumentException("Unknown event type: " + getType());
91 }
92 }
93 }