193102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair/* 293102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * Copyright 2007 the original author or authors. 393102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * 493102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 593102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * you may not use this file except in compliance with the License. 693102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * You may obtain a copy of the License at 793102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * 893102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * http://www.apache.org/licenses/LICENSE-2.0 993102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * 1093102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * Unless required by applicable law or agreed to in writing, software 1193102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * distributed under the License is distributed on an "AS IS" BASIS, 1293102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1393102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * See the License for the specific language governing permissions and 1493102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * limitations under the License. 1593102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair */ 1693102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismairpackage org.mockftpserver.stub.command; 1793102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair 1893102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismairimport org.mockftpserver.core.command.Command; 1993102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismairimport org.mockftpserver.core.command.CommandHandler; 2093102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismairimport org.mockftpserver.core.command.InvocationRecord; 2193102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismairimport org.mockftpserver.core.command.ReplyCodes; 2293102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismairimport org.mockftpserver.core.session.Session; 2393102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair 2493102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair/** 253b7668ee59bf567db6bce593a9090f65db171fdbchrismair * CommandHandler for the PWD (Print Working Directory) and XPWD commands. By default, return 263b7668ee59bf567db6bce593a9090f65db171fdbchrismair * an empty directory name, along with a reply code of 257. You can customize the returned 2793102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * directory name by setting the <code>directory</code> property. 2893102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * <p> 2993102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * Each invocation record stored by this CommandHandler contains no data elements. 303b7668ee59bf567db6bce593a9090f65db171fdbchrismair * 3193102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * @author Chris Mair 323b7668ee59bf567db6bce593a9090f65db171fdbchrismair * @version $Revision$ - $Date$ 3393102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair */ 343b7668ee59bf567db6bce593a9090f65db171fdbchrismairpublic class PwdCommandHandler extends AbstractStubCommandHandler implements CommandHandler { 3593102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair 3693102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair private String directory = ""; 373b7668ee59bf567db6bce593a9090f65db171fdbchrismair 3893102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair /** 393b7668ee59bf567db6bce593a9090f65db171fdbchrismair * Constructor. Initialize the replyCode. 4093102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair */ 4193102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair public PwdCommandHandler() { 4293102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair setReplyCode(ReplyCodes.PWD_OK); 4393102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair } 443b7668ee59bf567db6bce593a9090f65db171fdbchrismair 4593102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair public void handleCommand(Command command, Session session, InvocationRecord invocationRecord) { 4693102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair sendReply(session, quotes(directory)); 4793102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair } 4893102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair 4993102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair /** 5093102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * Set the directory String to be returned by this command 513b7668ee59bf567db6bce593a9090f65db171fdbchrismair * 5293102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair * @param directory - the directory 5393102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair */ 543b7668ee59bf567db6bce593a9090f65db171fdbchrismair public void setDirectory(String directory) { 553b7668ee59bf567db6bce593a9090f65db171fdbchrismair this.directory = directory; 5693102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair } 573b7668ee59bf567db6bce593a9090f65db171fdbchrismair 5893102446a7b7c3d17888064b4e2e4e5cb534e6d0chrismair} 59