KickJava   Java API By Example, From Geeks To Geeks.

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


1 /**
2  * Command STRU.
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.factory.ObjectFactory;
10 import com.coldcore.coloradoftp.factory.ObjectName;
11 import com.coldcore.coloradoftp.filter.DataFilterFactory;
12 import com.coldcore.coloradoftp.session.Session;
13 import com.coldcore.coloradoftp.session.SessionAttributeName;
14
15 import java.util.Iterator JavaDoc;
16
17 public class StruCommand extends AbstractCommand {
18
19   public Reply execute() {
20     Reply reply = getReply();
21     if (!testLogin()) return reply;
22
23     String JavaDoc stru = getParameter();
24     stru = stru.toUpperCase();
25
26     if (stru.length() == 0) {
27       reply.setCode("501");
28       reply.setText("Syntax error in parameters or arguments.");
29       return reply;
30     }
31
32     DataFilterFactory factory = (DataFilterFactory) ObjectFactory.getObject(ObjectName.STRU_FILTER_FACTORY);
33     if (factory.listNames().contains(stru)) {
34       Session session = getConnection().getSession();
35       session.setAttribute(SessionAttributeName.DATA_STRUCTURE, stru);
36       reply.setCode("200");
37       reply.setText("Command okay.");
38     } else {
39       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
40       Iterator JavaDoc<String JavaDoc> it = factory.listNames().iterator();
41       while (it.hasNext()) {
42         sb.append("STRU ").append(it.next());
43         if (it.hasNext()) sb.append(", ");
44       }
45       reply.setCode("504");
46       reply.setText("Supported only "+sb.toString()+".");
47     }
48     return reply;
49   }
50 }
51
Popular Tags