1 | /* |
2 | * @(#) $Id: ProtocolSessionManagerFilterChain.java 264677 2005-08-30 02:44:35Z trustin $ |
3 | * |
4 | * Copyright 2004 The Apache Software Foundation |
5 | * |
6 | * Licensed under the Apache License, Version 2.0 (the "License"); |
7 | * you may not use this file except in compliance with the License. |
8 | * You may obtain a copy of the License at |
9 | * |
10 | * http://www.apache.org/licenses/LICENSE-2.0 |
11 | * |
12 | * Unless required by applicable law or agreed to in writing, software |
13 | * distributed under the License is distributed on an "AS IS" BASIS, |
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
15 | * See the License for the specific language governing permissions and |
16 | * limitations under the License. |
17 | * |
18 | */ |
19 | package org.apache.mina.protocol; |
20 | |
21 | import org.apache.mina.common.IdleStatus; |
22 | |
23 | /** |
24 | * An {@link ProtocolFilterChain} that forwards all events |
25 | * except <tt>filterWrite</tt> to the {@link ProtocolSessionFilterChain} |
26 | * of the recipient session. |
27 | * <p> |
28 | * This filter chain is used by implementations of {@link ProtocolSessionManager}s. |
29 | * |
30 | * @author The Apache Directory Project (dev@directory.apache.org) |
31 | * @author Trustin Lee (trustin@apache.org) |
32 | * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $ |
33 | */ |
34 | public abstract class ProtocolSessionManagerFilterChain extends AbstractProtocolFilterChain { |
35 | |
36 | private final ProtocolSessionManager manager; |
37 | |
38 | protected ProtocolSessionManagerFilterChain( ProtocolSessionManager manager ) |
39 | { |
40 | this.manager = manager; |
41 | } |
42 | |
43 | public ProtocolSessionManager getManager() |
44 | { |
45 | return manager; |
46 | } |
47 | |
48 | protected ProtocolFilter createTailFilter() |
49 | { |
50 | return new ProtocolFilter() |
51 | { |
52 | public void sessionOpened( NextFilter nextFilter, ProtocolSession session ) |
53 | { |
54 | ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).sessionOpened( session ); |
55 | } |
56 | |
57 | public void sessionClosed( NextFilter nextFilter, ProtocolSession session ) |
58 | { |
59 | ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).sessionClosed( session ); |
60 | } |
61 | |
62 | public void sessionIdle( NextFilter nextFilter, ProtocolSession session, |
63 | IdleStatus status ) |
64 | { |
65 | ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).sessionIdle( session, status ); |
66 | } |
67 | |
68 | public void exceptionCaught( NextFilter nextFilter, |
69 | ProtocolSession session, Throwable cause ) |
70 | { |
71 | ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).exceptionCaught( session, cause ); |
72 | } |
73 | |
74 | public void messageReceived( NextFilter nextFilter, ProtocolSession session, |
75 | Object message ) |
76 | { |
77 | ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).messageReceived( session, message ); |
78 | } |
79 | |
80 | public void messageSent( NextFilter nextFilter, ProtocolSession session, |
81 | Object message ) |
82 | { |
83 | ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).messageSent( session, message ); |
84 | } |
85 | |
86 | public void filterWrite( NextFilter nextFilter, |
87 | ProtocolSession session, Object message ) |
88 | { |
89 | nextFilter.filterWrite( session, message ); |
90 | } |
91 | }; |
92 | } |
93 | } |