117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair/* 217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Copyright 2007 the original author or authors. 317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * you may not use this file except in compliance with the License. 617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * You may obtain a copy of the License at 717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * http://www.apache.org/licenses/LICENSE-2.0 917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 1017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Unless required by applicable law or agreed to in writing, software 1117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * distributed under the License is distributed on an "AS IS" BASIS, 1217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * See the License for the specific language governing permissions and 1417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * limitations under the License. 1517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 1617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairpackage org.mockftpserver.stub.command; 1717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 1817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.Command; 1917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.CommandHandler; 2017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.InvocationRecord; 2117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.ReplyCodes; 2217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.session.Session; 2317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 2417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair/** 2517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * CommandHandler for the REST (Restart of interrupted transfer) command. Send back a reply code of 350. 2617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * <p> 2717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Each invocation record stored by this CommandHandler includes the following data element key/values: 2817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * <ul> 2917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * <li>{@link #MARKER_KEY} ("marker") - the server marker submitted on the invocation (the first command parameter) 3017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * </ul> 3117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 3217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @version $Revision$ - $Date$ 3317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 3417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @author Chris Mair 3517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 3617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairpublic final class RestCommandHandler extends AbstractStubCommandHandler implements CommandHandler { 3717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 3817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public static final String MARKER_KEY = "marker"; 3917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 4017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 4117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Constructor. Initialize the replyCode. 4217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 4317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public RestCommandHandler() { 4417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair setReplyCode(ReplyCodes.REST_OK); 4517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 4617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 4717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 4817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @see org.mockftpserver.core.command.CommandHandler#handleCommand(Command, Session, InvocationRecord) 4917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 5017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void handleCommand(Command command, Session session, InvocationRecord invocationRecord) { 5117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair String marker = command.getRequiredString(0); 5217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair invocationRecord.set(MARKER_KEY, marker); 5317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair sendReply(session, marker); 5417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 5517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 5617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair} 57