|
|
|
|
@ -3,6 +3,7 @@ package cokr.xit.foundation.component;
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.foundation.AbstractComponent;
|
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
|
|
|
|
|
/**서비스 응답으로 반환하는 정보를 갖는 객체의 베이스 클래스.<br />
|
|
|
|
|
* 서비스 결과로 전달해야할 정보가 여러 개일 경우 이 클래스를 상속받아 응답클래스를 정의한다.<br />
|
|
|
|
|
@ -12,11 +13,30 @@ import cokr.xit.foundation.AbstractComponent;
|
|
|
|
|
public class ServiceResponse extends AbstractComponent implements Serializable {
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
|
|
private int affected;
|
|
|
|
|
private String
|
|
|
|
|
code,
|
|
|
|
|
message;
|
|
|
|
|
private Throwable throwable;
|
|
|
|
|
private DataObject info;
|
|
|
|
|
private Boolean success;
|
|
|
|
|
private RuntimeException throwable;
|
|
|
|
|
|
|
|
|
|
/**저장된 데이터수를 반환한다.
|
|
|
|
|
* @return 저장된 데이터수
|
|
|
|
|
*/
|
|
|
|
|
public int getAffected() {
|
|
|
|
|
return affected;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**저장된 데이터수를 설정한다.
|
|
|
|
|
* @param <T> 응답 타입
|
|
|
|
|
* @param affected 저장된 데이터수
|
|
|
|
|
* @return 현재 응답
|
|
|
|
|
*/
|
|
|
|
|
public <T extends ServiceResponse> T setAffected(int affected) {
|
|
|
|
|
this.affected = affected;
|
|
|
|
|
return self();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**결과코드를 반환한다.
|
|
|
|
|
* @return 결과코드
|
|
|
|
|
@ -52,20 +72,28 @@ public class ServiceResponse extends AbstractComponent implements Serializable {
|
|
|
|
|
return self();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**오류를 반환한다.
|
|
|
|
|
* @return 오류
|
|
|
|
|
/**응답 추가정보를 반환한다.
|
|
|
|
|
* @return 응답 추가정보
|
|
|
|
|
*/
|
|
|
|
|
public Throwable getThrowable() {
|
|
|
|
|
return throwable;
|
|
|
|
|
public DataObject getInfo() {
|
|
|
|
|
return info;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**응답 추가정보를 초기화 후 반환한다.
|
|
|
|
|
* @return 응답 추가정보
|
|
|
|
|
*/
|
|
|
|
|
public DataObject info() {
|
|
|
|
|
return ifEmpty(info, () -> info = new DataObject());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**오류를 설정한다.
|
|
|
|
|
/**주어진 키와 값으로 추가정보를 설정한다.
|
|
|
|
|
* @param <T> 응답 타입
|
|
|
|
|
* @param throwable 오류
|
|
|
|
|
* @param key 추가정보 키
|
|
|
|
|
* @param val 추가정보
|
|
|
|
|
* @return 현재 응답
|
|
|
|
|
*/
|
|
|
|
|
public <T extends ServiceResponse> T setThrowable(Throwable throwable) {
|
|
|
|
|
this.throwable = throwable;
|
|
|
|
|
public <T extends ServiceResponse> T info(String key, Object val) {
|
|
|
|
|
info().put(key, val);
|
|
|
|
|
return self();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -90,4 +118,30 @@ public class ServiceResponse extends AbstractComponent implements Serializable {
|
|
|
|
|
this.success = success;
|
|
|
|
|
return self();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**오류를 반환한다.
|
|
|
|
|
* @return 오류
|
|
|
|
|
*/
|
|
|
|
|
public RuntimeException getThrowable() {
|
|
|
|
|
return throwable;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**오류를 RuntimeException으로 변환하여 설정한다.
|
|
|
|
|
* @param <T> 응답 타입
|
|
|
|
|
* @param throwable 오류
|
|
|
|
|
* @return 현재 응답
|
|
|
|
|
*/
|
|
|
|
|
public <T extends ServiceResponse> T setThrowable(Throwable throwable) {
|
|
|
|
|
this.throwable = runtimeException(throwable);
|
|
|
|
|
return self();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**오류가 설정되어 있으면 throw한다.
|
|
|
|
|
* @return 오류가 설정되어 있지 않으면 false
|
|
|
|
|
*/
|
|
|
|
|
public boolean throwThrowable() {
|
|
|
|
|
if (throwable != null)
|
|
|
|
|
throw throwable;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|