KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > quickserver > net > qsadmin > CommandPlugin


1 /*
2  * This file is part of the QuickServer library
3  * Copyright (C) 2003-2005 QuickServer.org
4  *
5  * Use, modification, copying and distribution of this software is subject to
6  * the terms and conditions of the GNU Lesser General Public License.
7  * You should have received a copy of the GNU LGP License along with this
8  * library; if not, you can download a copy from <http://www.quickserver.org/>.
9  *
10  * For questions, suggestions, bug-reports, enhancement-requests etc.
11  * visit http://www.quickserver.org
12  *
13  */

14
15 package org.quickserver.net.qsadmin;
16
17 import java.io.IOException JavaDoc;
18 import java.net.SocketTimeoutException JavaDoc;
19 import org.quickserver.net.server.*;
20
21 /**
22  * This interface defines the methods that should be implemented by
23  * any class that wants to override default protocol of QsAdminServer
24  * or add new command specific to your application.
25  *
26  * <p>
27  * Recommendations to be followed when implementing ClientCommandHandler
28  * <ul>
29  * <li>Should be thread safe.
30  * <li>It should not store any client data that may be needed in the
31  * implementation.
32  * <li>If any client data is need to be saved from the client session,
33  * it should be saved to a {@link ClientData} class, which can be retrieved
34  * using handler.getClientData() method.
35  * <li>Should have a default constructor - If QsAdminSupport is needed.
36  * </ul>
37  * If you need to access the QuickServer you can use the code given below<br/>
38  * <code>QuickServer myserver = (QuickServer) handler.getServer().getStoreObjects()[0];</code>
39  * </p>
40  * @see QSAdminServer#startServer()
41  * @author Akshathkumar Shetty
42  */

43 public interface CommandPlugin {
44     /**
45      * Method called every time client sends a command to QsAdminServer.
46      * Should be used to handle the command sent and send any
47      * requested data.
48      * If the comand is handled by the plugin it should
49      * return <code>true</code> else it should return <code>false</code>
50      * indicating <code>qsadmin.CommandHandler</code> to take any
51      * default action for the command.
52      * This method can be used to override default protocol of
53      * QsAdminServer or add new command specific to your application.
54      *
55      * @exception java.net.SocketTimeoutException if socket times out
56      * @exception java.io.IOException if io error in socket
57      */

58     public boolean handleCommand(ClientHandler handler, String JavaDoc command)
59         throws SocketTimeoutException JavaDoc, IOException JavaDoc;
60
61 }
62
Popular Tags