View Javadoc

1   /***
2    *
3    * Copyright 2004 Hiram Chirino
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  package org.activeio;
18  
19  import java.io.IOException;
20  import java.net.URI;
21  
22  
23  /***
24   * A SynchChannelFilter can be used as a filter another {@see org.activeio.SynchChannel}
25   * Most {@see org.activeio.SynchChannel} that are not directly accessing the network will 
26   * extends the SynchChannelFilter since they act as a filter between the client and the network.
27   *    
28   * @version $Revision$
29   */
30  public class FilterSynchChannelServer implements SynchChannelServer {
31  
32      private final SynchChannelServer next;
33  
34      public FilterSynchChannelServer(SynchChannelServer next) {
35          this.next = next;
36      }
37  
38      /***
39       * @see org.activeio.Disposable#dispose()
40       */
41      public void dispose() {
42          next.dispose();
43      }
44  
45      /***
46       * @see org.activeio.Service#start()
47       */
48      public void start() throws IOException {
49          next.start();
50      }
51  
52      /***
53       * @see org.activeio.Service#stop(long)
54       */
55      public void stop(long timeout) throws IOException {
56          next.stop(timeout);
57      }
58  
59      /***
60       * @return Returns the next.
61       */
62      public SynchChannelServer getNext() {
63          return next;
64      }
65  
66      /***
67       * @see org.activeio.SynchChannelServer#accept(long)
68       */
69      public Channel accept(long timeout) throws IOException {
70          return next.accept(timeout);
71      }
72  
73      /***
74       * @see org.activeio.ChannelServer#getBindURI()
75       */
76      public URI getBindURI() {
77          return next.getBindURI();
78      }
79  
80      /***
81       * @see org.activeio.ChannelServer#getConnectURI()
82       */
83      public URI getConnectURI() {
84          return next.getConnectURI();
85      }
86      
87      public Object narrow(Class target) {
88          if( target.isAssignableFrom(getClass()) ) {
89              return this;
90          }
91          return next.narrow(target);
92      }    
93  
94      public String toString() {
95          return next.toString();
96      }
97  }