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 *   https://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 * Enumerates FTP commands.
022 *
023 * @since 3.3
024 */
025public enum FTPCmd {
026
027    /** FTP command ABOR. */
028    ABOR,
029
030    /** FTP command ACCT. */
031    ACCT,
032
033    /** FTP command ALLO. */
034    ALLO,
035
036    /** FTP command APPE. */
037    APPE,
038
039    /** FTP command CDUP. */
040    CDUP,
041
042    /** FTP command CWD. */
043    CWD,
044
045    /** FTP command DELE. */
046    DELE,
047
048    /** FTP command EPRT. */
049    EPRT,
050
051    /** FTP command EPSV. */
052    EPSV,
053
054    /** FTP command <a href="https://datatracker.ietf.org/doc/html/rfc2389#section-3">FEAT</a>. */
055    FEAT,
056
057    /** FTP command HELP. */
058    HELP,
059
060    /** FTP command LIST. */
061    LIST,
062
063    /** FTP command MDTM. */
064    MDTM,
065
066    /** FTP command MFMT. */
067    MFMT,
068
069    /** FTP command MKD. */
070    MKD,
071
072    /** FTP command MLSD. */
073    MLSD,
074
075    /** FTP command MLST. */
076    MLST,
077
078    /** FTP command MODE. */
079    MODE,
080
081    /** FTP command NLST. */
082    NLST,
083
084    /** FTP command NOOP. */
085    NOOP,
086
087    /**
088     * FTP command <a href="https://datatracker.ietf.org/doc/html/rfc2389#section-4">OPTS</a>.
089     *
090     * @since 3.12.0
091     */
092    OPTS,
093
094    /** FTP command PASS. */
095    PASS,
096
097    /** FTP command PASV. */
098    PASV,
099
100    /** FTP command PORT. */
101    PORT,
102
103    /** FTP command PWD. */
104    PWD,
105
106    /** FTP command QUIT. */
107    QUIT,
108
109    /** FTP command REIN. */
110    REIN,
111
112    /** FTP command REST. */
113    REST,
114
115    /** FTP command RETR. */
116    RETR,
117
118    /** FTP command RMD. */
119    RMD,
120
121    /** FTP command RNFR. */
122    RNFR,
123
124    /** FTP command RNTO. */
125    RNTO,
126
127    /** FTP command SITE. */
128    SITE,
129
130    /**
131     * FTP command SIZE.
132     *
133     * @since 3.7
134     */
135    SIZE,
136
137    /** FTP command SMNT. */
138    SMNT,
139
140    /** FTP command STAT. */
141    STAT,
142
143    /** FTP command STOR. */
144    STOR,
145
146    /** FTP command STOU. */
147    STOU,
148
149    /** FTP command STRU. */
150    STRU,
151
152    /** FTP command SYST. */
153    SYST,
154
155    /** FTP command TYPE. */
156    TYPE,
157
158    /** FTP command USER. */
159    USER;
160
161    // Aliases
162
163    /** Alias. */
164    public static final FTPCmd ABORT = ABOR;
165
166    /** Alias. */
167    public static final FTPCmd ACCOUNT = ACCT;
168
169    /** Alias. */
170    public static final FTPCmd ALLOCATE = ALLO;
171
172    /** Alias. */
173    public static final FTPCmd APPEND = APPE;
174
175    /** Alias. */
176    public static final FTPCmd CHANGE_TO_PARENT_DIRECTORY = CDUP;
177
178    /** Alias. */
179    public static final FTPCmd CHANGE_WORKING_DIRECTORY = CWD;
180
181    /** Alias. */
182    public static final FTPCmd DATA_PORT = PORT;
183
184    /** Alias. */
185    public static final FTPCmd DELETE = DELE;
186
187    /** Alias. */
188    public static final FTPCmd FEATURES = FEAT;
189
190    /** Alias. */
191    public static final FTPCmd FILE_STRUCTURE = STRU;
192
193    /** Alias. */
194    public static final FTPCmd GET_MOD_TIME = MDTM;
195
196    /** Alias. */
197    public static final FTPCmd LOGOUT = QUIT;
198
199    /** Alias. */
200    public static final FTPCmd MAKE_DIRECTORY = MKD;
201
202    /** Alias. */
203    public static final FTPCmd MOD_TIME = MDTM;
204
205    /** Alias. */
206    public static final FTPCmd NAME_LIST = NLST;
207
208    /** Alias. */
209    public static final FTPCmd PASSIVE = PASV;
210
211    /** Alias. */
212    public static final FTPCmd PASSWORD = PASS;
213
214    /** Alias. */
215    public static final FTPCmd PRINT_WORKING_DIRECTORY = PWD;
216
217    /** Alias. */
218    public static final FTPCmd REINITIALIZE = REIN;
219
220    /** Alias. */
221    public static final FTPCmd REMOVE_DIRECTORY = RMD;
222
223    /** Alias. */
224    public static final FTPCmd RENAME_FROM = RNFR;
225
226    /** Alias. */
227    public static final FTPCmd RENAME_TO = RNTO;
228
229    /** Alias. */
230    public static final FTPCmd REPRESENTATION_TYPE = TYPE;
231
232    /** Alias. */
233    public static final FTPCmd RESTART = REST;
234
235    /** Alias. */
236    public static final FTPCmd RETRIEVE = RETR;
237
238    /** Alias. */
239    public static final FTPCmd SET_MOD_TIME = MFMT;
240
241    /** Alias. */
242    public static final FTPCmd SITE_PARAMETERS = SITE;
243
244    /** Alias. */
245    public static final FTPCmd STATUS = STAT;
246
247    /** Alias. */
248    public static final FTPCmd STORE = STOR;
249
250    /** Alias. */
251    public static final FTPCmd STORE_UNIQUE = STOU;
252
253    /** Alias. */
254    public static final FTPCmd STRUCTURE_MOUNT = SMNT;
255
256    /** Alias. */
257    public static final FTPCmd SYSTEM = SYST;
258
259    /** Alias. */
260    public static final FTPCmd TRANSFER_MODE = MODE;
261
262    /** Alias. */
263    public static final FTPCmd USERNAME = USER;
264
265    /**
266     * Retrieve the FTP protocol command string corresponding to a specified command code.
267     *
268     * @return The FTP protcol command string corresponding to a specified command code.
269     */
270    public String getCommand() {
271        return name();
272    }
273
274}