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