forked from ArchipelagoMW/Java-Client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAPResult.java
More file actions
55 lines (43 loc) · 1.2 KB
/
APResult.java
File metadata and controls
55 lines (43 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package io.github.archipelagomw;
/**
* Small container class for the outcome of client requests.
* @param <T> The type of the data held
*/
public class APResult<T> {
public static enum ResultCode {
SUCCESS,
DISCONNECTED,
UNAUTHENTICATED,
OTHER_ERROR;
}
private final ResultCode code;
private final T value;
private APResult(ResultCode code) {
this(code, null);
}
private APResult(ResultCode code, T value) {
this.code = code;
this.value = value;
}
public static <T> APResult<T> success() {
return new APResult<>(ResultCode.SUCCESS);
}
public static <T> APResult<T> success(T value) {
return new APResult<>(ResultCode.SUCCESS, value);
}
public static <T> APResult<T> disconnected() {
return new APResult<>(ResultCode.DISCONNECTED);
}
public static <T> APResult<T> unauthenticated() {
return new APResult<>(ResultCode.UNAUTHENTICATED);
}
public static <T> APResult<T> error() {
return new APResult<>(ResultCode.OTHER_ERROR);
}
public ResultCode getCode() {
return code;
}
public T getValue() {
return value;
}
}