DefaultResult.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package jnpf.yozo.utils;
  2. public class DefaultResult<T> implements IResult<T> {
  3. private static final DefaultResult.SuccessResult SUCCESS = new DefaultResult.SuccessResult();
  4. private static final DefaultResult.FailResult FAIL = new DefaultResult.FailResult();
  5. private boolean success;
  6. private String message;
  7. private T data;
  8. public DefaultResult() {
  9. }
  10. public DefaultResult(boolean success, String message) {
  11. this(success, message, (T) null);
  12. }
  13. public DefaultResult(boolean success, T data) {
  14. this(success, (String)null, data);
  15. }
  16. public DefaultResult(boolean success, String message, T data) {
  17. this.success = success;
  18. this.message = message;
  19. this.data = data;
  20. }
  21. public static <T> DefaultResult<T> successResult() {
  22. return (DefaultResult<T>) SUCCESS;
  23. }
  24. public static <T> DefaultResult<T> successResult(T data) {
  25. return new DefaultResult(true, (String)null, data);
  26. }
  27. public static <T> DefaultResult<T> successResult(String message, T data) {
  28. return new DefaultResult(true, message, data);
  29. }
  30. public static <T> DefaultResult<T> failResult() {
  31. return (DefaultResult<T>) FAIL;
  32. }
  33. public static <T> DefaultResult<T> failResult(String message) {
  34. return new DefaultResult(false, message, (Object)null);
  35. }
  36. public static <T> DefaultResult<T> failResult(String message, T data) {
  37. return new DefaultResult(false, message, data);
  38. }
  39. public static <T> DefaultResult<T> failResult(T data) {
  40. return new DefaultResult(false, (String)null, data);
  41. }
  42. public static <T> DefaultResult<T> result(boolean success, String message, T data) {
  43. return new DefaultResult(success, message, data);
  44. }
  45. public boolean isSuccess() {
  46. return this.success;
  47. }
  48. public String getMessage() {
  49. return this.message;
  50. }
  51. public T getData() {
  52. return this.data;
  53. }
  54. public void setData(T obj) {
  55. this.data = obj;
  56. }
  57. private static class FailResult extends DefaultResult<Object> {
  58. public FailResult() {
  59. super(false, (String)null, (Object)null);
  60. }
  61. }
  62. private static class SuccessResult extends DefaultResult<Object> {
  63. public SuccessResult() {
  64. super(true, (String)null, (Object)null);
  65. }
  66. }
  67. }