1 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 ; 16 17 public class StruCommand extends AbstractCommand { 18 19 public Reply execute() { 20 Reply reply = getReply(); 21 if (!testLogin()) return reply; 22 23 String 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 sb = new StringBuffer (); 40 Iterator <String > 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 |