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.
160 lines
4.3 KiB
Java
160 lines
4.3 KiB
Java
package cokr.xit.foundation.component;
|
|
|
|
/**조회 서비스를 요청할 때 필요정보를 전달하는 클래스.
|
|
* <p>pageNum, fetchSize가
|
|
* <ul><li>0보다 크면 결과를 페이징하여 반환한다.</li>
|
|
* <li>그렇지 않으면 전체 결과를 반환한다.</li>
|
|
* </ul>
|
|
* @author mjkhan
|
|
*/
|
|
public class QueryRequest extends ServiceRequest {
|
|
private static final long serialVersionUID = 1L;
|
|
private String by;
|
|
private String term;
|
|
private String orderBy;
|
|
private int pageNum;
|
|
private int fetchSize;
|
|
private boolean
|
|
fetchAll,
|
|
includeAll;
|
|
private String download;
|
|
|
|
/**조회 조건 필드를 반환한다.
|
|
* @return 조회 조건 필드
|
|
*/
|
|
public String getBy() {
|
|
return ifEmpty(by, () -> null);
|
|
}
|
|
|
|
/**조회 조건 필드를 설정한다.
|
|
* @param by 조회 조건 필드
|
|
* @return QueryRequest
|
|
*/
|
|
public <T extends QueryRequest> T setBy(String by) {
|
|
this.by = by;
|
|
return self();
|
|
}
|
|
|
|
/**조회 조건을 반환한다.
|
|
* @return 조회 조건
|
|
*/
|
|
public String getTerm() {
|
|
return ifEmpty(term, () -> null);
|
|
}
|
|
|
|
/**조회 조건을 설정한다.
|
|
* @param term 조회 조건
|
|
* @return QueryRequest
|
|
*/
|
|
public <T extends QueryRequest> T setTerm(String term) {
|
|
this.term = term;
|
|
return self();
|
|
}
|
|
|
|
/**정렬 조건을 반환한다.
|
|
* @return 정렬 조건
|
|
*/
|
|
public String getOrderBy() {
|
|
return orderBy;
|
|
}
|
|
|
|
/**정렬 조건을 설정한다.
|
|
* @param orderBy 정렬 조건
|
|
* @return QueryRequest
|
|
*/
|
|
public <T extends QueryRequest> 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 QueryRequest
|
|
*/
|
|
public <T extends QueryRequest> T setPageNum(int pageNum) {
|
|
this.pageNum = pageNum;
|
|
return self();
|
|
}
|
|
|
|
/**한 번에 가지고 올 결과 갯수를 반환한다.
|
|
* @return fetchSize 한 번에 가지고 올 결과 갯수
|
|
*/
|
|
public int getFetchSize() {
|
|
return fetchSize;
|
|
}
|
|
|
|
/**한 번에 가지고 올 결과 갯수를 설정한다.
|
|
* @param fetchSize 한 번에 가지고 올 결과 갯수
|
|
* @return QueryRequest
|
|
*/
|
|
public <T extends QueryRequest> 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 QueryRequest> T setFetchAll(boolean fetchAll) {
|
|
this.fetchAll = fetchAll;
|
|
return self();
|
|
}
|
|
|
|
/**사용하지 않는 정보의 포함여부를 반환한다.
|
|
* @return includeAll 사용하지 않는 정보의 포함여부
|
|
*/
|
|
public boolean isIncludeAll() {
|
|
return includeAll;
|
|
}
|
|
|
|
/**사용하지 않는 정보의 포함여부를 설정한다.
|
|
* @param includeAll 사용하지 않는 정보의 포함여부
|
|
*/
|
|
public <T extends QueryRequest> 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 QueryRequest
|
|
*/
|
|
public <T extends QueryRequest> T setDownload(String download) {
|
|
this.download = download;
|
|
return self();
|
|
}
|
|
} |