1dfb59d50631968ab1a13002ea5421ece93169851chrismair/* 2dfb59d50631968ab1a13002ea5421ece93169851chrismair * Copyright 2007 the original author or authors. 3dfb59d50631968ab1a13002ea5421ece93169851chrismair * 4dfb59d50631968ab1a13002ea5421ece93169851chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5dfb59d50631968ab1a13002ea5421ece93169851chrismair * you may not use this file except in compliance with the License. 6dfb59d50631968ab1a13002ea5421ece93169851chrismair * You may obtain a copy of the License at 7dfb59d50631968ab1a13002ea5421ece93169851chrismair * 8dfb59d50631968ab1a13002ea5421ece93169851chrismair * http://www.apache.org/licenses/LICENSE-2.0 9dfb59d50631968ab1a13002ea5421ece93169851chrismair * 10dfb59d50631968ab1a13002ea5421ece93169851chrismair * Unless required by applicable law or agreed to in writing, software 11dfb59d50631968ab1a13002ea5421ece93169851chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12dfb59d50631968ab1a13002ea5421ece93169851chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dfb59d50631968ab1a13002ea5421ece93169851chrismair * See the License for the specific language governing permissions and 14dfb59d50631968ab1a13002ea5421ece93169851chrismair * limitations under the License. 15dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 16dfb59d50631968ab1a13002ea5421ece93169851chrismairpackage org.mockftpserver.stub.command; 17dfb59d50631968ab1a13002ea5421ece93169851chrismair 18dfb59d50631968ab1a13002ea5421ece93169851chrismairimport org.mockftpserver.core.command.Command; 19dfb59d50631968ab1a13002ea5421ece93169851chrismairimport org.mockftpserver.core.command.InvocationRecord; 20dfb59d50631968ab1a13002ea5421ece93169851chrismairimport org.mockftpserver.core.session.Session; 21dfb59d50631968ab1a13002ea5421ece93169851chrismair 22dfb59d50631968ab1a13002ea5421ece93169851chrismair/** 23dfb59d50631968ab1a13002ea5421ece93169851chrismair * CommandHandler for the APPE (Append) command. Send back two replies on the control connection: a 24dfb59d50631968ab1a13002ea5421ece93169851chrismair * reply code of 150 and another of 226. 25dfb59d50631968ab1a13002ea5421ece93169851chrismair * <p/> 26dfb59d50631968ab1a13002ea5421ece93169851chrismair * Each invocation record stored by this CommandHandler includes the following data element key/values: 27dfb59d50631968ab1a13002ea5421ece93169851chrismair * <ul> 28dfb59d50631968ab1a13002ea5421ece93169851chrismair * <li>{@link #PATHNAME_KEY} ("pathname") - the pathname of the directory submitted on the invocation (the first command parameter) 29dfb59d50631968ab1a13002ea5421ece93169851chrismair * <li>{@link #FILE_CONTENTS_KEY} ("fileContents") - the file contents (<code>byte[]</code>) sent on the data connection 30dfb59d50631968ab1a13002ea5421ece93169851chrismair * </ul> 31dfb59d50631968ab1a13002ea5421ece93169851chrismair * 32dfb59d50631968ab1a13002ea5421ece93169851chrismair * @author Chris Mair 33dfb59d50631968ab1a13002ea5421ece93169851chrismair * @version $Revision$ - $Date$ 34dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 35dfb59d50631968ab1a13002ea5421ece93169851chrismairpublic class AppeCommandHandler extends AbstractStorCommandHandler { 36dfb59d50631968ab1a13002ea5421ece93169851chrismair 37dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 38dfb59d50631968ab1a13002ea5421ece93169851chrismair * @see org.mockftpserver.stub.command.AbstractStubDataCommandHandler#beforeProcessData(org.mockftpserver.core.command.Command, org.mockftpserver.core.session.Session, org.mockftpserver.core.command.InvocationRecord) 39dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 40dfb59d50631968ab1a13002ea5421ece93169851chrismair protected void beforeProcessData(Command command, Session session, InvocationRecord invocationRecord) throws Exception { 41dfb59d50631968ab1a13002ea5421ece93169851chrismair String filename = command.getRequiredParameter(0); 42dfb59d50631968ab1a13002ea5421ece93169851chrismair invocationRecord.set(PATHNAME_KEY, filename); 43dfb59d50631968ab1a13002ea5421ece93169851chrismair } 44dfb59d50631968ab1a13002ea5421ece93169851chrismair 45dfb59d50631968ab1a13002ea5421ece93169851chrismair} 46