/*
 * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */
package sun.net.ftp;

This class describes a FTP protocol reply code and associates a meaning to the numerical value according to the various RFCs (RFC 959 in particular).
/** * This class describes a FTP protocol reply code and associates a meaning * to the numerical value according to the various RFCs (RFC 959 in * particular). * */
public enum FtpReplyCode { RESTART_MARKER(110), SERVICE_READY_IN(120), DATA_CONNECTION_ALREADY_OPEN(125), FILE_STATUS_OK(150), COMMAND_OK(200), NOT_IMPLEMENTED(202), SYSTEM_STATUS(211), DIRECTORY_STATUS(212), FILE_STATUS(213), HELP_MESSAGE(214), NAME_SYSTEM_TYPE(215), SERVICE_READY(220), SERVICE_CLOSING(221), DATA_CONNECTION_OPEN(225), CLOSING_DATA_CONNECTION(226), ENTERING_PASSIVE_MODE(227), ENTERING_EXT_PASSIVE_MODE(229), LOGGED_IN(230), SECURELY_LOGGED_IN(232), SECURITY_EXCHANGE_OK(234), SECURITY_EXCHANGE_COMPLETE(235), FILE_ACTION_OK(250), PATHNAME_CREATED(257), NEED_PASSWORD(331), NEED_ACCOUNT(332), NEED_ADAT(334), NEED_MORE_ADAT(335), FILE_ACTION_PENDING(350), SERVICE_NOT_AVAILABLE(421), CANT_OPEN_DATA_CONNECTION(425), CONNECTION_CLOSED(426), NEED_SECURITY_RESOURCE(431), FILE_ACTION_NOT_TAKEN(450), ACTION_ABORTED(451), INSUFFICIENT_STORAGE(452), COMMAND_UNRECOGNIZED(500), INVALID_PARAMETER(501), BAD_SEQUENCE(503), NOT_IMPLEMENTED_FOR_PARAMETER(504), NOT_LOGGED_IN(530), NEED_ACCOUNT_FOR_STORING(532), PROT_LEVEL_DENIED(533), REQUEST_DENIED(534), FAILED_SECURITY_CHECK(535), UNSUPPORTED_PROT_LEVEL(536), PROT_LEVEL_NOT_SUPPORTED_BY_SECURITY(537), FILE_UNAVAILABLE(550), PAGE_TYPE_UNKNOWN(551), EXCEEDED_STORAGE(552), FILE_NAME_NOT_ALLOWED(553), PROTECTED_REPLY(631), UNKNOWN_ERROR(999); private final int value; FtpReplyCode(int val) { this.value = val; }
Returns the numerical value of the code.
Returns:the numerical value.
/** * Returns the numerical value of the code. * * @return the numerical value. */
public int getValue() { return value; }
Determines if the code is a Positive Preliminary response. This means beginning with a 1 (which means a value between 100 and 199)
Returns:true if the reply code is a positive preliminary response.
/** * Determines if the code is a Positive Preliminary response. * This means beginning with a 1 (which means a value between 100 and 199) * * @return <code>true</code> if the reply code is a positive preliminary * response. */
public boolean isPositivePreliminary() { return value >= 100 && value < 200; }
Determines if the code is a Positive Completion response. This means beginning with a 2 (which means a value between 200 and 299)
Returns:true if the reply code is a positive completion response.
/** * Determines if the code is a Positive Completion response. * This means beginning with a 2 (which means a value between 200 and 299) * * @return <code>true</code> if the reply code is a positive completion * response. */
public boolean isPositiveCompletion() { return value >= 200 && value < 300; }
Determines if the code is a positive internediate response. This means beginning with a 3 (which means a value between 300 and 399)
Returns:true if the reply code is a positive intermediate response.
/** * Determines if the code is a positive internediate response. * This means beginning with a 3 (which means a value between 300 and 399) * * @return <code>true</code> if the reply code is a positive intermediate * response. */
public boolean isPositiveIntermediate() { return value >= 300 && value < 400; }
Determines if the code is a transient negative response. This means beginning with a 4 (which means a value between 400 and 499)
Returns:true if the reply code is a transient negative response.
/** * Determines if the code is a transient negative response. * This means beginning with a 4 (which means a value between 400 and 499) * * @return <code>true</code> if the reply code is a transient negative * response. */
public boolean isTransientNegative() { return value >= 400 && value < 500; }
Determines if the code is a permanent negative response. This means beginning with a 5 (which means a value between 500 and 599)
Returns:true if the reply code is a permanent negative response.
/** * Determines if the code is a permanent negative response. * This means beginning with a 5 (which means a value between 500 and 599) * * @return <code>true</code> if the reply code is a permanent negative * response. */
public boolean isPermanentNegative() { return value >= 500 && value < 600; }
Determines if the code is a protected reply response. This means beginning with a 6 (which means a value between 600 and 699)
Returns:true if the reply code is a protected reply response.
/** * Determines if the code is a protected reply response. * This means beginning with a 6 (which means a value between 600 and 699) * * @return <code>true</code> if the reply code is a protected reply * response. */
public boolean isProtectedReply() { return value >= 600 && value < 700; }
Determines if the code is a syntax related response. This means the second digit is a 0.
Returns:true if the reply code is a syntax related response.
/** * Determines if the code is a syntax related response. * This means the second digit is a 0. * * @return <code>true</code> if the reply code is a syntax related * response. */
public boolean isSyntax() { return ((value / 10) - ((value / 100) * 10)) == 0; }
Determines if the code is an information related response. This means the second digit is a 1.
Returns:true if the reply code is an information related response.
/** * Determines if the code is an information related response. * This means the second digit is a 1. * * @return <code>true</code> if the reply code is an information related * response. */
public boolean isInformation() { return ((value / 10) - ((value / 100) * 10)) == 1; }
Determines if the code is a connection related response. This means the second digit is a 2.
Returns:true if the reply code is a connection related response.
/** * Determines if the code is a connection related response. * This means the second digit is a 2. * * @return <code>true</code> if the reply code is a connection related * response. */
public boolean isConnection() { return ((value / 10) - ((value / 100) * 10)) == 2; }
Determines if the code is an authentication related response. This means the second digit is a 3.
Returns:true if the reply code is an authentication related response.
/** * Determines if the code is an authentication related response. * This means the second digit is a 3. * * @return <code>true</code> if the reply code is an authentication related * response. */
public boolean isAuthentication() { return ((value / 10) - ((value / 100) * 10)) == 3; }
Determines if the code is an unspecified type of response. This means the second digit is a 4.
Returns:true if the reply code is an unspecified type of response.
/** * Determines if the code is an unspecified type of response. * This means the second digit is a 4. * * @return <code>true</code> if the reply code is an unspecified type of * response. */
public boolean isUnspecified() { return ((value / 10) - ((value / 100) * 10)) == 4; }
Determines if the code is a file system related response. This means the second digit is a 5.
Returns:true if the reply code is a file system related response.
/** * Determines if the code is a file system related response. * This means the second digit is a 5. * * @return <code>true</code> if the reply code is a file system related * response. */
public boolean isFileSystem() { return ((value / 10) - ((value / 100) * 10)) == 5; }
Static utility method to convert a value into a FtpReplyCode.
Params:
  • v – the value to convert
Returns:the FtpReplyCode associated with the value.
/** * Static utility method to convert a value into a FtpReplyCode. * * @param v the value to convert * @return the <code>FtpReplyCode</code> associated with the value. */
public static FtpReplyCode find(int v) { for (FtpReplyCode code : FtpReplyCode.values()) { if (code.getValue() == v) { return code; } } return UNKNOWN_ERROR; } }