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.
197 lines
5.3 KiB
Java
197 lines
5.3 KiB
Java
package cokr.xit.foundation.component;
|
|
|
|
import cokr.xit.foundation.AbstractObject;
|
|
|
|
/**서비스 요청을 위한 정보를 갖는 객체의 베이스 클래스.<br />
|
|
* 서비스를 요청할 때 전달해야할 정보가 많을 경우(4개 이상) 이 클래스를 상속받아 요청을 정의한다.<br />
|
|
* 전달해야할 정보가 많지 않으면 서비스 요청을 정의할 필요없다.
|
|
* @author mjkhan
|
|
*/
|
|
public abstract class ServiceRequest extends AbstractObject {
|
|
private String
|
|
type,
|
|
by,
|
|
term,
|
|
orderBy;
|
|
private int pageNum;
|
|
private int fetchSize;
|
|
private boolean
|
|
fetchAll,
|
|
includeAll;
|
|
private String download;
|
|
|
|
/**요청유형을 반환한다. 요청유형은 애플리케이션에서 필요에 따라 정의한다.
|
|
* @return 요청유형
|
|
*/
|
|
public String getType() {
|
|
return ifEmpty(type, "");
|
|
}
|
|
|
|
/**요청유형을 설정한다. 요청유형은 애플리케이션에서 필요에 따라 정의한다.
|
|
* @param type 요청유형
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setType(String type) {
|
|
this.type = type;
|
|
return self();
|
|
}
|
|
|
|
/**조회 조건 필드를 반환한다.
|
|
* @return 조회 조건 필드
|
|
*/
|
|
public String getBy() {
|
|
return ifEmpty(by, () -> null);
|
|
}
|
|
|
|
/**조회 조건 필드를 설정한다.
|
|
* @param by 조회 조건 필드
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setBy(String by) {
|
|
this.by = by;
|
|
return self();
|
|
}
|
|
|
|
/**조회 조건을 반환한다.
|
|
* @return 조회 조건
|
|
*/
|
|
public String getTerm() {
|
|
return ifEmpty(term, () -> null);
|
|
}
|
|
|
|
/**조회 조건을 설정한다.
|
|
* @param term 조회 조건
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setTerm(String term) {
|
|
this.term = term;
|
|
return self();
|
|
}
|
|
|
|
/**정렬 조건을 반환한다.
|
|
* @return 정렬 조건
|
|
*/
|
|
public String getOrderBy() {
|
|
return orderBy;
|
|
}
|
|
|
|
/**정렬 조건을 설정한다.
|
|
* @param orderBy 정렬 조건
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setOrderBy(String orderBy) {
|
|
this.orderBy = orderBy;
|
|
return self();
|
|
}
|
|
|
|
/**조회 결과의 시작 페이지를 반환한다.
|
|
* @return dataStart 조회 결과의 시작 페이지
|
|
*/
|
|
public int getPageNum() {
|
|
return Math.max(pageNum, 1);
|
|
// return isEmpty(download) ? pageNum : 0;
|
|
}
|
|
|
|
/**조회 결과의 시작 페이지를 설정한다.
|
|
* @param pageNum 조회 결과의 시작 페이지
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setPageNum(int pageNum) {
|
|
this.pageNum = pageNum;
|
|
return self();
|
|
}
|
|
|
|
/**한 번에 가지고 올 결과 갯수를 반환한다.
|
|
* @return fetchSize 한 번에 가지고 올 결과 갯수
|
|
*/
|
|
public int getFetchSize() {
|
|
return fetchSize;
|
|
}
|
|
|
|
/**한 번에 가지고 올 결과 갯수를 설정한다.
|
|
* @param fetchSize 한 번에 가지고 올 결과 갯수
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setFetchSize(int fetchSize) {
|
|
this.fetchSize = fetchSize;
|
|
return self();
|
|
}
|
|
|
|
/**모든 조회 결과의 반환 여부를 반환한다.
|
|
* @return fetchAll 모든 조회 결과의 반환 여부
|
|
* <ul><li>조회 결과를 모두 반환하려면 true</li>
|
|
* <li>그렇지 않으면 false</li>
|
|
* </ul>
|
|
*/
|
|
public boolean fetchAll() {
|
|
return fetchAll;
|
|
}
|
|
|
|
/**모든 조회 결과의 반환 여부를 설정한다.
|
|
* @param fetchAll 모든 조회 결과의 반환 여부
|
|
* <ul><li>조회 결과를 모두 반환하려면 true</li>
|
|
* <li>그렇지 않으면 false</li>
|
|
* </ul>
|
|
*/
|
|
public <T extends ServiceRequest> T setFetchAll(boolean fetchAll) {
|
|
this.fetchAll = fetchAll;
|
|
return self();
|
|
}
|
|
|
|
/**사용하지 않는 정보의 포함여부를 반환한다.
|
|
* @return includeAll 사용하지 않는 정보의 포함여부
|
|
*/
|
|
public boolean isIncludeAll() {
|
|
return includeAll;
|
|
}
|
|
|
|
/**사용하지 않는 정보의 포함여부를 설정한다.
|
|
* @param includeAll 사용하지 않는 정보의 포함여부
|
|
*/
|
|
public <T extends ServiceRequest> T setIncludeAll(boolean includeAll) {
|
|
this.includeAll = includeAll;
|
|
return self();
|
|
}
|
|
|
|
/**조회결과를 다운로드할 파일 유형을 반환한다.
|
|
* @return download 다운로드 파일 유형
|
|
* <ul><li>엑셀 파일 - "xls"</li>
|
|
* <li>다운로드하지 않으면 빈 값</li>
|
|
* </ul>
|
|
*/
|
|
public String getDownload() {
|
|
return download;
|
|
}
|
|
|
|
/**조회결과를 다운로드할 유형을 설정한다.
|
|
* @param download 다운로드 파일 유형
|
|
* <ul><li>엑셀 파일 - "xls"</li>
|
|
* <li>다운로드하지 않으면 빈 값</li>
|
|
* </ul>
|
|
* @return 현재 요청
|
|
*/
|
|
public <T extends ServiceRequest> T setDownload(String download) {
|
|
this.download = download;
|
|
return self();
|
|
}
|
|
|
|
/**요청의 상태값에 대한 유효성을 체크한다.<br />
|
|
* 상태값이 유효하지 않으면 RuntimeException을 발생시킨다.
|
|
*/
|
|
public void validate() {}
|
|
|
|
/**요청의 상태값이 유효한지 반환한다.
|
|
* @return 요청의 상태값의 유효 여부
|
|
* <ul><li>요청의 상태값이 유효하면 true</li>
|
|
* <li>그렇지 않으면 false</li>
|
|
* </ul>
|
|
*/
|
|
public boolean isValid() {
|
|
try {
|
|
validate();
|
|
return true;
|
|
} catch (Exception e) {
|
|
return false;
|
|
}
|
|
}
|
|
} |