刘光辉
14 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package jnpf.yozo.utils;
 
import lombok.Setter;
 
public class DefaultResult<T> implements IResult<T> {
    private static final SuccessResult SUCCESS = new SuccessResult();
    private static final FailResult FAIL = new FailResult();
    private boolean successCode;
    private String message;
    @Setter
    private T data;
 
    public DefaultResult() {
    }
 
    public DefaultResult(boolean successCode, String message) {
        this(successCode, message, (T) null);
    }
 
    public DefaultResult(boolean successCode, T data) {
        this(successCode, null, data);
    }
 
    public DefaultResult(boolean successCode, String message, T data) {
        this.successCode = successCode;
        this.message = message;
        this.data = data;
    }
 
    public static <T> DefaultResult<T> successResult() {
        return (DefaultResult<T>) SUCCESS;
    }
 
    public static <T> DefaultResult<T> successResult(T data) {
        return new DefaultResult<>(true, null, data);
    }
 
    public static <T> DefaultResult<T> successResult(String message, T data) {
        return new DefaultResult<>(true, message, data);
    }
 
    public static <T> DefaultResult<T> failResult() {
        return (DefaultResult<T>) FAIL;
    }
 
    public static <T> DefaultResult<T> failResult(String message) {
        return new DefaultResult<>(false, message, null);
    }
 
    public static <T> DefaultResult<T> failResult(String message, T data) {
        return new DefaultResult<>(false, message, data);
    }
 
    public static <T> DefaultResult<T> failResult(T data) {
        return new DefaultResult<>(false, (String)null, data);
    }
 
    public static <T> DefaultResult<T> result(boolean success, String message, T data) {
        return new DefaultResult<>(success, message, data);
    }
 
    public boolean isSuccessCode() {
        return this.successCode;
    }
 
    public String getMessage() {
        return this.message;
    }
 
    public T getData() {
        return this.data;
    }
 
    private static class FailResult extends DefaultResult<Object> {
        public FailResult() {
            super(false, null, null);
        }
    }
 
    private static class SuccessResult extends DefaultResult<Object> {
        public SuccessResult() {
            super(true, null, null);
        }
    }
}