KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > coldcore > coloradoftp > command > impl > ftp > AborCommand


1 /**
2  * Command ABOR.
3  * See FTP spec for details on the command.
4  */

5 package com.coldcore.coloradoftp.command.impl.ftp;
6
7 import com.coldcore.coloradoftp.command.Reply;
8 import com.coldcore.coloradoftp.command.impl.AbstractCommand;
9 import com.coldcore.coloradoftp.connection.DataConnection;
10 import com.coldcore.coloradoftp.connection.DataPortListener;
11 import com.coldcore.coloradoftp.connection.DataPortListenerSet;
12 import com.coldcore.coloradoftp.factory.ObjectFactory;
13 import com.coldcore.coloradoftp.factory.ObjectName;
14 import org.apache.log4j.Logger;
15
16 public class AborCommand extends AbstractCommand {
17
18   private static Logger log = Logger.getLogger(AborCommand.class);
19
20
21   public Reply execute() {
22     Reply reply = getReply();
23     if (!testLogin()) return reply;
24
25     //Abort data connection initiator
26
controlConnection.getDataConnectionInitiator().abort();
27
28     //Abort data connection listeners
29
DataPortListenerSet listeners = (DataPortListenerSet) ObjectFactory.getObject(ObjectName.DATA_PORT_LISTENER_SET);
30     for (DataPortListener listener : listeners.list())
31       listener.removeConnection(controlConnection);
32
33     //Abort active data connection
34
DataConnection dataConnection = controlConnection.getDataConnection();
35     if (dataConnection != null) {
36       log.debug("Aborting data connection, it will send reply to ABOR command");
37       dataConnection.abort();
38       return null;
39     } else {
40       reply.setCode("226");
41       reply.setText("Abort command successful.");
42       return reply;
43     }
44   }
45
46
47   public boolean processInInterruptState() {
48     return true;
49   }
50
51
52   public boolean canClearInterruptState() {
53     return true;
54   }
55
56 }
57
Popular Tags