All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.globus.ftp.vanilla.Command Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 1999-2006 University of Chicago
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.globus.ftp.vanilla;

/**
 * Represents an FTP Control Channel Command
 */
public class Command {

    public static final Command FEAT = new Command("FEAT");
    public static final Command ABOR = new Command("ABOR");
    public static final Command CDUP = new Command("CDUP");
    public static final Command PWD  = new Command("PWD");
    public static final Command QUIT = new Command("QUIT");
    public static final Command PASV = new Command("PASV");
    public static final Command SPAS  = new Command("SPAS");
    public static final Command EPSV = new Command("EPSV");


    ///////////////////////////////////////
    // attributes

    private String name;
    private String parameters;

    ///////////////////////////////////////
    // operations


    /**
     * @param name the command name, eg. "PUT"
     * @param parameters the command parameters; in other words everything that
     * is contained between the space after the command name and the trailing
     * Telnet EOL, excluding both the mentioned space and EOL. For instance,
     * in command "STOR /tmp/file.txt\r\n", the parameters would be:
     * "/tmp/file.txt"
     * and trailing EOL.
     */
    public  Command(String name, String parameters)
	throws IllegalArgumentException{
	initialize(name, parameters);
    } // end Command

    public  Command(String name)
	throws IllegalArgumentException{
	initialize(name, null);
    }

    private void initialize(String name, String parameters)
	throws IllegalArgumentException {
        if (name == null) {
	    throw new IllegalArgumentException("null name");
	}
	if (parameters != null && parameters.endsWith(FTPControlChannel.CRLF)) {
	    throw new IllegalArgumentException("parameters end with EOL");
	}
        this.name = name;
	this.parameters = parameters;
    } // end initialize

    /**
     * @return a String representation of this object, that is
     *    
     * 

*/ public static String toString(Command command) { return command.toString(); } public String toString() { if (parameters == null) { return name + FTPControlChannel.CRLF; } else { return name + " " + parameters + FTPControlChannel.CRLF; } } } // end Command




© 2015 - 2025 Weber Informatics LLC | Privacy Policy