1 | /* |
2 | * @(#) $Id: ReverseProtocolHandler.java 327113 2005-10-21 06:59:15Z 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.examples.reverser; |
20 | |
21 | import org.apache.mina.protocol.ProtocolHandler; |
22 | import org.apache.mina.protocol.ProtocolHandlerAdapter; |
23 | import org.apache.mina.protocol.ProtocolSession; |
24 | |
25 | /** |
26 | * {@link ProtocolHandler} implementation of reverser server protocol. |
27 | * |
28 | * @author The Apache Directory Project (dev@directory.apache.org) |
29 | * @version $Rev: 327113 $, $Date: 2005-10-21 15:59:15 +0900 $, |
30 | */ |
31 | public class ReverseProtocolHandler extends ProtocolHandlerAdapter |
32 | { |
33 | public void exceptionCaught( ProtocolSession session, Throwable cause ) |
34 | { |
35 | // Close connection when unexpected exception is caught. |
36 | session.close(); |
37 | } |
38 | |
39 | public void messageReceived( ProtocolSession session, Object message ) |
40 | { |
41 | // Reverse reveiced string |
42 | String str = message.toString(); |
43 | StringBuffer buf = new StringBuffer( str.length() ); |
44 | for( int i = str.length() - 1; i >= 0; i-- ) |
45 | { |
46 | buf.append( str.charAt( i ) ); |
47 | } |
48 | |
49 | // and write it back. |
50 | session.write( buf.toString() ); |
51 | } |
52 | } |