Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: refactor the Result Class #7176

Merged
merged 15 commits into from
Mar 9, 2025
2 changes: 1 addition & 1 deletion changes/en-us/2.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,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 @@ -70,7 +70,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
Loading