Skip to content

Commit

Permalink
refactor: refactor the Result Class (#7176)
Browse files Browse the repository at this point in the history
  • Loading branch information
YongGoose authored Mar 9, 2025
1 parent d917fcf commit 01877a9
Show file tree
Hide file tree
Showing 18 changed files with 221 additions and 181 deletions.
2 changes: 1 addition & 1 deletion changes/en-us/2.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Add changes here for all PR submitted to the 2.x branch.

### refactor:

- [[#PR_NO](https://github.com/apache/incubator-seata/pull/PR_NO)] refactor XXX
- [[#7176](https://github.com/apache/incubator-seata/pull/7176)] refactor the Result class

Thanks to these contributors for their code commits. Please report an unintended omission.

Expand Down
2 changes: 1 addition & 1 deletion changes/zh-cn/2.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@

### refactor:

- [[#PR_NO](https://github.com/apache/incubator-seata/pull/PR_NO)] 重构XXX
- [[#7176](https://github.com/apache/incubator-seata/pull/7176)] 重构 Result 类

非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。

Expand Down
26 changes: 4 additions & 22 deletions common/src/main/java/org/apache/seata/common/result/Code.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ public enum Code {
/**
* server error
*/
ERROR("500", "Server error"),
INTERNAL_SERVER_ERROR("500", "Server error"),
/**
* the custom error
*/
LOGIN_FAILED("401", "Login failed");
UNAUTHORIZED("401", "Login failed");

/**
* The Code.
*/
public String code;
public final String code;

/**
* The Msg.
*/
public String msg;
public final String msg;

private Code(String code, String msg) {
this.code = code;
Expand All @@ -55,15 +55,6 @@ public String getCode() {
return this.code;
}

/**
* Sets code.
*
* @param code the code
*/
public void setCode(String code) {
this.code = code;
}

/**
* Gets msg.
*
Expand All @@ -73,15 +64,6 @@ public String getMsg() {
return msg;
}

/**
* Sets msg.
*
* @param msg the msg
*/
public void setMsg(String msg) {
this.msg = msg;
}

/**
* Gets error msg.
*
Expand Down
32 changes: 17 additions & 15 deletions common/src/main/java/org/apache/seata/common/result/PageResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
*/
package org.apache.seata.common.result;

import java.io.Serializable;
import static org.apache.seata.common.result.Code.SUCCESS;

import java.util.List;

/**
* The page result
*
*/
public class PageResult<T> extends Result<T> implements Serializable {
public class PageResult<T> extends Result {
private static final long serialVersionUID = 7761262662429121287L;

/**
Expand Down Expand Up @@ -55,7 +55,7 @@ public PageResult(String code, String message) {
}

public PageResult(List<T> data, Integer total, Integer pages, Integer pageNum, Integer pageSize) {
super(SUCCESS_CODE, SUCCESS_MSG);
super(SUCCESS.code, SUCCESS.msg);
this.total = total;
this.pages = pages;
this.pageNum = pageNum;
Expand All @@ -71,19 +71,19 @@ public static <T> PageResult<T> build(List<T> list, Integer pageNum, Integer pag
}
final int offset = pageSize * (pageNum - 1);
return PageResult.success(
list.subList(
Math.min(offset, list.size()),
Math.min(offset + pageSize, list.size())
),
list.size(),
pages,
pageNum,
pageSize
list.subList(
Math.min(offset, list.size()),
Math.min(offset + pageSize, list.size())
),
list.size(),
pages,
pageNum,
pageSize
);
}

public PageResult(List<T> data, Integer total, Integer pageNum, Integer pageSize) {
super(SUCCESS_CODE, SUCCESS_MSG);
super(SUCCESS.code, SUCCESS.msg);
this.total = total;
this.pageNum = pageNum;
this.pageSize = pageSize;
Expand All @@ -101,12 +101,14 @@ public static <T> PageResult<T> failure(String code, String msg) {
}

public static <T> PageResult<T> success() {
return new PageResult<>(SUCCESS_CODE, SUCCESS_MSG);
return new PageResult<>(SUCCESS.code, SUCCESS.msg);
}

public static <T> PageResult<T> success(List<T> data, Integer total, Integer pages, Integer pageNum, Integer pageSize) {
public static <T> PageResult<T> success(List<T> data, Integer total, Integer pages, Integer pageNum,
Integer pageSize) {
return new PageResult<>(data, total, pages, pageNum, pageSize);
}

public static <T> PageResult<T> success(List<T> data, Integer total, Integer pageNum, Integer pageSize) {
return new PageResult<>(data, total, pageNum, pageSize);
}
Expand Down
25 changes: 7 additions & 18 deletions common/src/main/java/org/apache/seata/common/result/Result.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,21 @@
*/
package org.apache.seata.common.result;

import static org.apache.seata.common.result.Code.SUCCESS;

import java.io.Serializable;

/**
* The basic result
*/
public class Result<T> implements Serializable {
public class Result implements Serializable {
private static final long serialVersionUID = 7761261124298767L;

public static final String SUCCESS_CODE = "200";
public static final String SUCCESS_MSG = "success";
public static final String FAIL_CODE = "500";


private String code = SUCCESS_CODE;
private String message = SUCCESS_MSG;
private final String code;
private final String message;

public Result() {
this(null, null);
}

public Result(String code, String message) {
Expand All @@ -41,23 +39,14 @@ public Result(String code, String message) {
}

public boolean isSuccess() {
return SUCCESS_CODE.equals(this.code);
return this.code.equals(SUCCESS.code);
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,15 @@
*/
package org.apache.seata.common.result;

import java.io.Serializable;

import static org.apache.seata.common.result.Code.SUCCESS;
import static org.apache.seata.common.result.Code.INTERNAL_SERVER_ERROR;

/**
* The single result
*/
public class SingleResult<T> extends Result<T> implements Serializable {
public class SingleResult<T> extends Result {
private static final long serialVersionUID = 77612626624298767L;

/**
* the data
*/
private T data;

public SingleResult(String code, String message) {
Expand All @@ -44,27 +41,34 @@ public static <T> SingleResult<T> failure(String code, String msg) {
}

public static <T> SingleResult<T> failure(Code errorCode) {
return new SingleResult(errorCode.getCode(), errorCode.getMsg());
return failure(errorCode.code, errorCode.msg);
}

public static <T> SingleResult<T> failure(String msg) {
return new SingleResult<>(FAIL_CODE, msg);
return failure(INTERNAL_SERVER_ERROR.code, msg);
}

public static <T> SingleResult<T> success(String msg, T data) {
return new SingleResult<>(SUCCESS.code, msg, data);
}

public static <T> SingleResult<T> success(T data) {
return new SingleResult<>(SUCCESS_CODE, SUCCESS_MSG,data);
public static SingleResult<Void> success(String msg) {
return success(msg, null);
}

public static <T> SingleResult<T> success() {
return new SingleResult<>(SUCCESS_CODE, SUCCESS_MSG, null);
return success(SUCCESS.msg, null);
}

public static <T> SingleResult<T> successWithData(T data) {
return success(SUCCESS.msg, data);
}

public T getData() {
return data;
}

public void setData(T data) {
public void setData(final T data) {
this.data = data;
}

}
17 changes: 4 additions & 13 deletions common/src/test/java/org/apache/seata/common/code/CodeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,15 @@ public class CodeTest {
public void testGetErrorMsgWithValidCodeReturnsExpectedMsg() {
// Test case for SUCCESS
assertEquals("ok", Code.SUCCESS.getMsg());
// Test case for ERROR
assertEquals("Server error", Code.ERROR.getMsg());
// Test case for LOGIN_FAILED
assertEquals("Login failed", Code.LOGIN_FAILED.getMsg());
// Test case for INTERNAL_SERVER_ERROR
assertEquals("Server error", Code.INTERNAL_SERVER_ERROR.getMsg());
// Test case for UNAUTHORIZED
assertEquals("Login failed", Code.UNAUTHORIZED.getMsg());
}

@Test
public void testGetErrorMsgWithInvalidCodeReturnsNull() {
// Test case for non-existing code
assertNull(Code.getErrorMsg("404"));
}

@Test
public void testSetCodeAndMsgUpdatesValuesCorrectly() {
// Test case to check if setCode and setMsg are working as expected
Code.SUCCESS.setCode("201");
Code.SUCCESS.setMsg("Created");
assertEquals("201", Code.SUCCESS.getCode());
assertEquals("Created", Code.SUCCESS.getMsg());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.mockito.InjectMocks;
import org.mockito.MockitoAnnotations;

import static org.apache.seata.common.result.Code.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

Expand All @@ -41,7 +42,7 @@ void buildPageSizeDivisibleByListSize() {
for (long i = 0; i < 100; i++) {
list.add(i);
}
PageResult pageResult = PageResult.build(list, 1, 10);
PageResult<Long> pageResult = PageResult.build(list, 1, 10);
assertEquals(10, pageResult.getPages());
assertEquals(10, pageResult.getData().size());
}
Expand All @@ -52,7 +53,7 @@ void buildPageSizeNotDivisibleByListSize() {
for (long i = 0; i < 9; i++) {
list.add(i);
}
PageResult pageResult = PageResult.build(list, 1, 10);
PageResult<Long> pageResult = PageResult.build(list, 1, 10);
assertEquals(1, pageResult.getPages());
assertEquals(9, pageResult.getData().size());
}
Expand All @@ -63,24 +64,24 @@ void buildPageNumGreaterThanTotalPages() {
for (long i = 0; i < 5; i++) {
list.add(i);
}
PageResult pageResult = PageResult.build(list, 10, 2);
PageResult<Long> pageResult = PageResult.build(list, 10, 2);
assertEquals(10, pageResult.getPageNum().intValue());
assertEquals(3, pageResult.getPages().intValue());
assertEquals(0, pageResult.getData().size());
}

@Test
void failureInvalidParams() {
PageResult pageResult = PageResult.failure("400", "error");
PageResult<Void> pageResult = PageResult.failure("400", "error");
assertEquals("400", pageResult.getCode());
assertEquals("error", pageResult.getMessage());
}

@Test
void successNoData() {
PageResult pageResult = PageResult.success();
assertEquals(PageResult.SUCCESS_CODE, pageResult.getCode());
assertEquals(PageResult.SUCCESS_MSG, pageResult.getMessage());
PageResult<Void> pageResult = PageResult.success();
assertEquals(SUCCESS.code, pageResult.getCode());
assertEquals(SUCCESS.msg, pageResult.getMessage());
assertNull(pageResult.getData());
}

Expand All @@ -90,9 +91,9 @@ void successWithData() {
for (long i = 0; i < 5; i++) {
list.add(i);
}
PageResult pageResult = PageResult.success(list, 5, 1, 5);
assertEquals(PageResult.SUCCESS_CODE, pageResult.getCode());
assertEquals(PageResult.SUCCESS_MSG, pageResult.getMessage());
PageResult<Long> pageResult = PageResult.success(list, 5, 1, 5);
assertEquals(SUCCESS.code, pageResult.getCode());
assertEquals(SUCCESS.msg, pageResult.getMessage());
assertEquals(5, pageResult.getTotal().intValue());
assertEquals(1, pageResult.getPageNum().intValue());
assertEquals(5, pageResult.getPageSize().intValue());
Expand Down
Loading

0 comments on commit 01877a9

Please sign in to comment.