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 객체를 생성한다.