001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package org.apache.commons.net.ftp; 019 020/** 021 * FTPCommand stores a set of constants for FTP command codes. To interpret the meaning of the codes, familiarity with RFC 959 is assumed. The mnemonic constant 022 * names are transcriptions from the code descriptions of RFC 959. For those who think in terms of the actual FTP commands, a set of constants such as 023 * {@link #USER USER } are provided where the constant name is the same as the FTP command. 024 * 025 * @deprecated use {@link FTPCmd} instead 026 */ 027@Deprecated 028public final class FTPCommand { 029 030 /** Command code {@value}. */ 031 public static final int USER = 0; 032 033 /** Command code {@value}. */ 034 public static final int PASS = 1; 035 036 /** Command code {@value}. */ 037 public static final int ACCT = 2; 038 039 /** Command code {@value}. */ 040 public static final int CWD = 3; 041 042 /** Command code {@value}. */ 043 public static final int CDUP = 4; 044 045 /** Command code {@value}. */ 046 public static final int SMNT = 5; 047 048 /** Command code {@value}. */ 049 public static final int REIN = 6; 050 051 /** Command code {@value}. */ 052 public static final int QUIT = 7; 053 054 /** Command code {@value}. */ 055 public static final int PORT = 8; 056 057 /** Command code {@value}. */ 058 public static final int PASV = 9; 059 060 /** Command code {@value}. */ 061 public static final int TYPE = 10; 062 063 /** Command code {@value}. */ 064 public static final int STRU = 11; 065 066 /** Command code {@value}. */ 067 public static final int MODE = 12; 068 069 /** Command code {@value}. */ 070 public static final int RETR = 13; 071 072 /** Command code {@value}. */ 073 public static final int STOR = 14; 074 075 /** Command code {@value}. */ 076 077 /** Command code {@value}. */ 078 public static final int STOU = 15; 079 080 /** Command code {@value}. */ 081 public static final int APPE = 16; 082 083 /** Command code {@value}. */ 084 085 /** Command code {@value}. */ 086 public static final int ALLO = 17; 087 088 /** Command code {@value}. */ 089 public static final int REST = 18; 090 091 /** Command code {@value}. */ 092 public static final int RNFR = 19; 093 094 /** Command code {@value}. */ 095 public static final int RNTO = 20; 096 097 /** Command code {@value}. */ 098 public static final int ABOR = 21; 099 100 /** Command code {@value}. */ 101 public static final int DELE = 22; 102 103 /** Command code {@value}. */ 104 public static final int RMD = 23; 105 106 /** Command code {@value}. */ 107 public static final int MKD = 24; 108 109 /** Command code {@value}. */ 110 public static final int PWD = 25; 111 112 /** Command code {@value}. */ 113 public static final int LIST = 26; 114 115 /** Command code {@value}. */ 116 public static final int NLST = 27; 117 118 /** Command code {@value}. */ 119 public static final int SITE = 28; 120 121 /** Command code {@value}. */ 122 public static final int SYST = 29; 123 124 /** Command code {@value}. */ 125 public static final int STAT = 30; 126 127 /** Command code {@value}. */ 128 129 /** Command code {@value}. */ 130 public static final int HELP = 31; 131 132 /** Command code {@value}. */ 133 public static final int NOOP = 32; 134 135 136 /** 137 * Command code {@value}. 138 * 139 * @since 2.0 140 */ 141 public static final int MDTM = 33; 142 143 /** 144 * Command code {@value}. 145 * 146 * @since 2.2 147 */ 148 public static final int FEAT = 34; 149 150 /** 151 * Command code {@value}. 152 * 153 * @since 2.0 154 */ 155 public static final int MFMT = 35; 156 157 /** 158 * Command code {@value}. 159 * 160 * @since 2.0 161 */ 162 public static final int EPSV = 36; 163 164 /** 165 * Command code {@value}. 166 * 167 * @since 2.0 168 */ 169 public static final int EPRT = 37; 170 171 /** 172 * Machine parseable list for a directory. 173 * 174 * @since 3.0 175 */ 176 public static final int MLSD = 38; 177 178 /** 179 * Machine parseable list for a single file. 180 * 181 * @since 3.0 182 */ 183 public static final int MLST = 39; 184 185 // Must agree with final entry above; used to check array size 186 private static final int LAST = MLST; 187 188 /** Alias for {@value}. */ 189 public static final int USERNAME = USER; 190 191 /** Alias for {@value}. */ 192 public static final int PASSWORD = PASS; 193 194 /** Alias for {@value}. */ 195 public static final int ACCOUNT = ACCT; 196 197 /** Alias for {@value}. */ 198 public static final int CHANGE_WORKING_DIRECTORY = CWD; 199 200 /** Alias for {@value}. */ 201 public static final int CHANGE_TO_PARENT_DIRECTORY = CDUP; 202 203 /** Alias for {@value}. */ 204 public static final int STRUCTURE_MOUNT = SMNT; 205 206 /** Alias for {@value}. */ 207 public static final int REINITIALIZE = REIN; 208 209 /** Alias for {@value}. */ 210 public static final int LOGOUT = QUIT; 211 212 /** Alias for {@value}. */ 213 public static final int DATA_PORT = PORT; 214 215 /** Alias for {@value}. */ 216 public static final int PASSIVE = PASV; 217 218 /** Alias for {@value}. */ 219 public static final int REPRESENTATION_TYPE = TYPE; 220 221 /** Alias for {@value}. */ 222 public static final int FILE_STRUCTURE = STRU; 223 224 /** Alias for {@value}. */ 225 public static final int TRANSFER_MODE = MODE; 226 227 /** Alias for {@value}. */ 228 public static final int RETRIEVE = RETR; 229 230 /** Alias for {@value}. */ 231 public static final int STORE = STOR; 232 233 /** Alias for {@value}. */ 234 public static final int STORE_UNIQUE = STOU; 235 236 /** Alias for {@value}. */ 237 public static final int APPEND = APPE; 238 239 /** Alias for {@value}. */ 240 public static final int ALLOCATE = ALLO; 241 242 /** Alias for {@value}. */ 243 public static final int RESTART = REST; 244 245 /** Alias for {@value}. */ 246 public static final int RENAME_FROM = RNFR; 247 248 /** Alias for {@value}. */ 249 public static final int RENAME_TO = RNTO; 250 251 /** Alias for {@value}. */ 252 public static final int ABORT = ABOR; 253 254 /** Alias for {@value}. */ 255 public static final int DELETE = DELE; 256 257 /** Alias for {@value}. */ 258 public static final int REMOVE_DIRECTORY = RMD; 259 260 /** Alias for {@value}. */ 261 public static final int MAKE_DIRECTORY = MKD; 262 263 /** Alias for {@value}. */ 264 public static final int PRINT_WORKING_DIRECTORY = PWD; 265 266 // public static final int LIST = LIST; 267 268 /** Alias for {@value}. */ 269 public static final int NAME_LIST = NLST; 270 271 /** Alias for {@value}. */ 272 public static final int SITE_PARAMETERS = SITE; 273 274 /** Alias for {@value}. */ 275 public static final int SYSTEM = SYST; 276 277 /** Alias for {@value}. */ 278 public static final int STATUS = STAT; 279 280 // public static final int HELP = HELP; 281 // public static final int NOOP = NOOP; 282 283 /** 284 * Alias for {@value}. 285 * @since 2.0 286 */ 287 public static final int MOD_TIME = MDTM; 288 289 /** 290 * Alias for {@value}. 291 * @since 2.2 292 */ 293 public static final int FEATURES = FEAT; 294 295 /** 296 * Alias for {@value}. 297 * @since 2.2 298 */ 299 public static final int GET_MOD_TIME = MDTM; 300 301 /** 302 * Alias for {@value}. 303 * @since 2.2 304 */ 305 public static final int SET_MOD_TIME = MFMT; 306 307 private static final String[] COMMANDS = { "USER", "PASS", "ACCT", "CWD", "CDUP", "SMNT", "REIN", "QUIT", "PORT", "PASV", "TYPE", "STRU", "MODE", "RETR", 308 "STOR", "STOU", "APPE", "ALLO", "REST", "RNFR", "RNTO", "ABOR", "DELE", "RMD", "MKD", "PWD", "LIST", "NLST", "SITE", "SYST", "STAT", "HELP", "NOOP", 309 "MDTM", "FEAT", "MFMT", "EPSV", "EPRT", "MLSD", "MLST" }; 310 311 /** 312 * Default access needed for Unit test. 313 */ 314 static void checkArray() { 315 final int expectedLength = LAST + 1; 316 if (COMMANDS.length != expectedLength) { 317 throw new IllegalStateException("Incorrect COMMANDS array. Should have length " + expectedLength + " found " + COMMANDS.length); 318 } 319 } 320 321 /** 322 * Retrieve the FTP protocol command string corresponding to a specified command code. 323 * 324 * @param command The command code. 325 * @return The FTP protcol command string corresponding to a specified command code. 326 */ 327 public static String getCommand(final int command) { 328 return COMMANDS[command]; 329 } 330 331 /** Cannot be instantiated. */ 332 private FTPCommand() { 333 } 334}