KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > net > ProtocolCommandEvent


1 /*
2  * Copyright 2001-2005 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.net;
17 import java.util.EventObject JavaDoc;
18
19 /***
20  * There exists a large class of IETF protocols that work by sending an
21  * ASCII text command and arguments to a server, and then receiving an
22  * ASCII text reply. For debugging and other purposes, it is extremely
23  * useful to log or keep track of the contents of the protocol messages.
24  * The ProtocolCommandEvent class coupled with the
25  * {@link org.apache.commons.net.ProtocolCommandListener}
26  * interface facilitate this process.
27  * <p>
28  * <p>
29  * @see ProtocolCommandListener
30  * @see ProtocolCommandSupport
31  * @author Daniel F. Savarese
32  ***/

33
34 public class ProtocolCommandEvent extends EventObject JavaDoc
35 {
36     private int __replyCode;
37     private boolean __isCommand;
38     private String JavaDoc __message, __command;
39
40     /***
41      * Creates a ProtocolCommandEvent signalling a command was sent to
42      * the server. ProtocolCommandEvents created with this constructor
43      * should only be sent after a command has been sent, but before the
44      * reply has been received.
45      * <p>
46      * @param source The source of the event.
47      * @param command The string representation of the command type sent, not
48      * including the arguments (e.g., "STAT" or "GET").
49      * @param message The entire command string verbatim as sent to the server,
50      * including all arguments.
51      ***/

52     public ProtocolCommandEvent(Object JavaDoc source, String JavaDoc command, String JavaDoc message)
53     {
54         super(source);
55         __replyCode = 0;
56         __message = message;
57         __isCommand = true;
58         __command = command;
59     }
60
61
62     /***
63      * Creates a ProtocolCommandEvent signalling a reply to a command was
64      * received. ProtocolCommandEvents created with this constructor
65      * should only be sent after a complete command reply has been received
66      * fromt a server.
67      * <p>
68      * @param source The source of the event.
69      * @param replyCode The integer code indicating the natureof the reply.
70      * This will be the protocol integer value for protocols
71      * that use integer reply codes, or the reply class constant
72      * corresponding to the reply for protocols like POP3 that use
73      * strings like OK rather than integer codes (i.e., POP3Repy.OK).
74      * @param message The entire reply as received from the server.
75      ***/

76     public ProtocolCommandEvent(Object JavaDoc source, int replyCode, String JavaDoc message)
77     {
78         super(source);
79         __replyCode = replyCode;
80         __message = message;
81         __isCommand = false;
82         __command = null;
83     }
84
85     /***
86      * Returns the string representation of the command type sent (e.g., "STAT"
87      * or "GET"). If the ProtocolCommandEvent is a reply event, then null
88      * is returned.
89      * <p>
90      * @return The string representation of the command type sent, or null
91      * if this is a reply event.
92      ***/

93     public String JavaDoc getCommand()
94     {
95         return __command;
96     }
97
98
99     /***
100      * Returns the reply code of the received server reply. Undefined if
101      * this is not a reply event.
102      * <p>
103      * @return The reply code of the received server reply. Undefined if
104      * not a reply event.
105      ***/

106     public int getReplyCode()
107     {
108         return __replyCode;
109     }
110
111     /***
112      * Returns true if the ProtocolCommandEvent was generated as a result
113      * of sending a command.
114      * <p>
115      * @return true If the ProtocolCommandEvent was generated as a result
116      * of sending a command. False otherwise.
117      ***/

118     public boolean isCommand()
119     {
120         return __isCommand;
121     }
122
123     /***
124      * Returns true if the ProtocolCommandEvent was generated as a result
125      * of receiving a reply.
126      * <p>
127      * @return true If the ProtocolCommandEvent was generated as a result
128      * of receiving a reply. False otherwise.
129      ***/

130     public boolean isReply()
131     {
132         return !isCommand();
133     }
134
135     /***
136      * Returns the entire message sent to or received from the server.
137      * <p>
138      * @return The entire message sent to or received from the server.
139      ***/

140     public String JavaDoc getMessage()
141     {
142         return __message;
143     }
144 }
145
Popular Tags