You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.4 KiB
Java

package cokr.xit.foundation.component;
import java.io.Serializable;
import cokr.xit.foundation.AbstractComponent;
/**서비스 응답으로 반환하는 정보를 갖는 객체의 베이스 클래스.<br />
* 서비스 결과로 전달해야할 정보가 여러 개일 경우 이 클래스를 상속받아 응답클래스를 정의한다.<br />
* 결과 정보가 하나일 경우는 응답클래스를 정의할 필요없다.
* @author mjkhan
*/
public abstract class ServiceResponse extends AbstractComponent implements Serializable {
private static final long serialVersionUID = 1L;
private String
code,
message;
private Throwable throwable;
private Boolean success;
/**결과코드를 반환한다.
* @return 결과코드
*/
public String getCode() {
return code;
}
/**결과코드를 설정한다.
* @param <T> 응답 타입
* @param code 결과코드
* @return 현재 응답
*/
public <T extends ServiceResponse> T setCode(String code) {
this.code = code;
return self();
}
/**결과메시지를 반환한다.
* @return 결과메시지
*/
public String getMessage() {
return message;
}
/**결과메시지를 설정한다.
* @param <T> 응답 타입
* @param message 결과메시지
* @return 현재 응답
*/
public <T extends ServiceResponse> T setMessage(String message) {
this.message = message;
return self();
}
/**오류를 반환한다.
* @return 오류
*/
public Throwable getThrowable() {
return throwable;
}
/**오류를 설정한다.
* @param <T> 응답 타입
* @param throwable 오류
* @return 현재 응답
*/
public <T extends ServiceResponse> T setThrowable(Throwable throwable) {
this.throwable = throwable;
return self();
}
/**성공여부를 반환한다.
* @return 성공여부
* <ul><li>디폴트는 true</li>
* <li>오류가 설정되어 있으면 false</li>
* <li>설정된 성공여부</li>
* </ul>
*/
public boolean isSuccess() {
if (throwable != null)
return false;
return ifEmpty(success, Boolean.TRUE);
}
/**성공여부(디폴트는 true)를 설정한다.
* @param <T> 응답 타입
* @param success 성공여부
* @return 현재 응답
*/
public <T extends ServiceResponse> T setSuccess(boolean success) {
this.success = success;
return self();
}
}