KickJava   Java API By Example, From Geeks To Geeks.

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


1 /**
2  * Command STAT.
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.connection.DataConnection;
9 import com.coldcore.coloradoftp.factory.ObjectFactory;
10 import com.coldcore.coloradoftp.factory.ObjectName;
11 import com.coldcore.coloradoftp.filesystem.FileSystem;
12 import com.coldcore.coloradoftp.filesystem.ListingFile;
13 import com.coldcore.coloradoftp.session.Session;
14 import com.coldcore.coloradoftp.session.SessionAttributeName;
15
16 import java.util.Set JavaDoc;
17
18 public class StatCommand extends ListCommand {
19
20   public Reply execute() {
21     Reply reply = getReply();
22     if (!testLogin()) return reply;
23
24     DataConnection dataConnection = controlConnection.getDataConnection();
25     if (dataConnection != null) {
26       reply.setCode("221");
27       reply.setText("Waiting for data transfer to finish.");
28       return reply;
29     }
30
31     //If there is no parameter then send general info
32
if (getParameter().length() == 0) {
33       Session session = controlConnection.getSession();
34       String JavaDoc mode = (String JavaDoc) session.getAttribute(SessionAttributeName.DATA_MODE);
35       String JavaDoc type = (String JavaDoc) session.getAttribute(SessionAttributeName.DATA_TYPE);
36       String JavaDoc stru = (String JavaDoc) session.getAttribute(SessionAttributeName.DATA_STRUCTURE);
37       if (mode == null) mode = "S";
38       if (type == null) type = "A";
39       if (stru == null) stru = "F";
40       reply.setCode("211");
41       reply.setText("Control connection OK, TYPE "+type+", MODE "+mode+", STRU "+stru+".");
42       return reply;
43     }
44
45     //The parameter must be path, so list it
46
String JavaDoc listDir = getParameter();
47     Session session = controlConnection.getSession();
48     FileSystem fileSystem = (FileSystem) ObjectFactory.getObject(ObjectName.FILESYSTEM);
49     Set JavaDoc<ListingFile> list = fileSystem.listDirectory(listDir, session);
50
51     String JavaDoc prepared = prepareList(list)+"end";
52
53
54     reply.setCode("212");
55     reply.setText("List results:\r\n"+prepared.trim());
56     return reply;
57   }
58
59   
60   public boolean processInInterruptState() {
61     return true;
62   }
63
64 }
65
Popular Tags