Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.base/share/classes/sun/net/ftp/FtpReplyCode.java
41159 views
1
/*
2
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
package sun.net.ftp;
26
27
/**
28
* This class describes a FTP protocol reply code and associates a meaning
29
* to the numerical value according to the various RFCs (RFC 959 in
30
* particular).
31
*
32
*/
33
public enum FtpReplyCode {
34
35
RESTART_MARKER(110),
36
SERVICE_READY_IN(120),
37
DATA_CONNECTION_ALREADY_OPEN(125),
38
FILE_STATUS_OK(150),
39
COMMAND_OK(200),
40
NOT_IMPLEMENTED(202),
41
SYSTEM_STATUS(211),
42
DIRECTORY_STATUS(212),
43
FILE_STATUS(213),
44
HELP_MESSAGE(214),
45
NAME_SYSTEM_TYPE(215),
46
SERVICE_READY(220),
47
SERVICE_CLOSING(221),
48
DATA_CONNECTION_OPEN(225),
49
CLOSING_DATA_CONNECTION(226),
50
ENTERING_PASSIVE_MODE(227),
51
ENTERING_EXT_PASSIVE_MODE(229),
52
LOGGED_IN(230),
53
SECURELY_LOGGED_IN(232),
54
SECURITY_EXCHANGE_OK(234),
55
SECURITY_EXCHANGE_COMPLETE(235),
56
FILE_ACTION_OK(250),
57
PATHNAME_CREATED(257),
58
NEED_PASSWORD(331),
59
NEED_ACCOUNT(332),
60
NEED_ADAT(334),
61
NEED_MORE_ADAT(335),
62
FILE_ACTION_PENDING(350),
63
SERVICE_NOT_AVAILABLE(421),
64
CANT_OPEN_DATA_CONNECTION(425),
65
CONNECTION_CLOSED(426),
66
NEED_SECURITY_RESOURCE(431),
67
FILE_ACTION_NOT_TAKEN(450),
68
ACTION_ABORTED(451),
69
INSUFFICIENT_STORAGE(452),
70
COMMAND_UNRECOGNIZED(500),
71
INVALID_PARAMETER(501),
72
BAD_SEQUENCE(503),
73
NOT_IMPLEMENTED_FOR_PARAMETER(504),
74
NOT_LOGGED_IN(530),
75
NEED_ACCOUNT_FOR_STORING(532),
76
PROT_LEVEL_DENIED(533),
77
REQUEST_DENIED(534),
78
FAILED_SECURITY_CHECK(535),
79
UNSUPPORTED_PROT_LEVEL(536),
80
PROT_LEVEL_NOT_SUPPORTED_BY_SECURITY(537),
81
FILE_UNAVAILABLE(550),
82
PAGE_TYPE_UNKNOWN(551),
83
EXCEEDED_STORAGE(552),
84
FILE_NAME_NOT_ALLOWED(553),
85
PROTECTED_REPLY(631),
86
UNKNOWN_ERROR(999);
87
private final int value;
88
89
FtpReplyCode(int val) {
90
this.value = val;
91
}
92
93
/**
94
* Returns the numerical value of the code.
95
*
96
* @return the numerical value.
97
*/
98
public int getValue() {
99
return value;
100
}
101
102
/**
103
* Determines if the code is a Positive Preliminary response.
104
* This means beginning with a 1 (which means a value between 100 and 199)
105
*
106
* @return <code>true</code> if the reply code is a positive preliminary
107
* response.
108
*/
109
public boolean isPositivePreliminary() {
110
return value >= 100 && value < 200;
111
}
112
113
/**
114
* Determines if the code is a Positive Completion response.
115
* This means beginning with a 2 (which means a value between 200 and 299)
116
*
117
* @return <code>true</code> if the reply code is a positive completion
118
* response.
119
*/
120
public boolean isPositiveCompletion() {
121
return value >= 200 && value < 300;
122
}
123
124
/**
125
* Determines if the code is a positive internediate response.
126
* This means beginning with a 3 (which means a value between 300 and 399)
127
*
128
* @return <code>true</code> if the reply code is a positive intermediate
129
* response.
130
*/
131
public boolean isPositiveIntermediate() {
132
return value >= 300 && value < 400;
133
}
134
135
/**
136
* Determines if the code is a transient negative response.
137
* This means beginning with a 4 (which means a value between 400 and 499)
138
*
139
* @return <code>true</code> if the reply code is a transient negative
140
* response.
141
*/
142
public boolean isTransientNegative() {
143
return value >= 400 && value < 500;
144
}
145
146
/**
147
* Determines if the code is a permanent negative response.
148
* This means beginning with a 5 (which means a value between 500 and 599)
149
*
150
* @return <code>true</code> if the reply code is a permanent negative
151
* response.
152
*/
153
public boolean isPermanentNegative() {
154
return value >= 500 && value < 600;
155
}
156
157
/**
158
* Determines if the code is a protected reply response.
159
* This means beginning with a 6 (which means a value between 600 and 699)
160
*
161
* @return <code>true</code> if the reply code is a protected reply
162
* response.
163
*/
164
public boolean isProtectedReply() {
165
return value >= 600 && value < 700;
166
}
167
168
/**
169
* Determines if the code is a syntax related response.
170
* This means the second digit is a 0.
171
*
172
* @return <code>true</code> if the reply code is a syntax related
173
* response.
174
*/
175
public boolean isSyntax() {
176
return ((value / 10) - ((value / 100) * 10)) == 0;
177
}
178
179
/**
180
* Determines if the code is an information related response.
181
* This means the second digit is a 1.
182
*
183
* @return <code>true</code> if the reply code is an information related
184
* response.
185
*/
186
public boolean isInformation() {
187
return ((value / 10) - ((value / 100) * 10)) == 1;
188
}
189
190
/**
191
* Determines if the code is a connection related response.
192
* This means the second digit is a 2.
193
*
194
* @return <code>true</code> if the reply code is a connection related
195
* response.
196
*/
197
public boolean isConnection() {
198
return ((value / 10) - ((value / 100) * 10)) == 2;
199
}
200
201
/**
202
* Determines if the code is an authentication related response.
203
* This means the second digit is a 3.
204
*
205
* @return <code>true</code> if the reply code is an authentication related
206
* response.
207
*/
208
public boolean isAuthentication() {
209
return ((value / 10) - ((value / 100) * 10)) == 3;
210
}
211
212
/**
213
* Determines if the code is an unspecified type of response.
214
* This means the second digit is a 4.
215
*
216
* @return <code>true</code> if the reply code is an unspecified type of
217
* response.
218
*/
219
public boolean isUnspecified() {
220
return ((value / 10) - ((value / 100) * 10)) == 4;
221
}
222
223
/**
224
* Determines if the code is a file system related response.
225
* This means the second digit is a 5.
226
*
227
* @return <code>true</code> if the reply code is a file system related
228
* response.
229
*/
230
public boolean isFileSystem() {
231
return ((value / 10) - ((value / 100) * 10)) == 5;
232
}
233
234
/**
235
* Static utility method to convert a value into a FtpReplyCode.
236
*
237
* @param v the value to convert
238
* @return the <code>FtpReplyCode</code> associated with the value.
239
*/
240
public static FtpReplyCode find(int v) {
241
for (FtpReplyCode code : FtpReplyCode.values()) {
242
if (code.getValue() == v) {
243
return code;
244
}
245
}
246
return UNKNOWN_ERROR;
247
}
248
}
249
250