Spring
SPRING - ResultData<DT>
yeosang0508
2024. 8. 18. 22:57
package com.example.demo.vo;
import lombok.Getter;
public class ResultData<DT> {
@Getter
private String ResultCode;
@Getter
private String msg;
@Getter
private DT data1;
@Getter
private String data1Name;
public static <DT> ResultData<DT> from(String ResultCode, String msg) {
return from(ResultCode, msg, null,null);
}
public static <DT> ResultData<DT> from(String ResultCode, String msg, String data1Name, DT data1) {
ResultData<DT> rd = new ResultData<DT>();
rd.ResultCode = ResultCode;
rd.msg = msg;
rd.data1 = data1;
rd.data1Name = data1Name;
return rd;
}
public boolean isSuccess() {
return ResultCode.startsWith("S-");
}
public boolean isFail() {
return isSuccess() == false;
}
public static <DT> ResultData<DT> newData(ResultData rd,String dataName, DT newData){
return from(rd.getResultCode(), rd.getMsg(),dataName, newData);
}
}
위는 응답 데이터를 담는데 유용한 제네릭 클래스이다.
<DT>
- DT는 제네릭 타입으로 클래스가 여러 타입의 데이터를 받을 수 있도록 한다. 그렇기에 data1에 어떤 타입의 데이터도 저장할 수 있다.
ResultCode는 성공했는지 실패했는지 나타내기 위해 작성하였고 (ex. S-1, S-2, F-1, F-2...) msg는 그에 관련된 alert을 나타내기위해 작성되었다.
newData()는 위에서 선언된 ResultData 객체를 기반으로 새 데이터를 설정하여 새로운 ResultData 객체를 생성한다.