/** * Copyright 2014 Eediom Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.araqne.logdb.client; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; /** * 예약된 쿼리를 표현합니다. * * @since 0.9.5 * @author xeraph@eediom.com * */ public class ScheduledQueryInfo { private String guid = UUID.randomUUID().toString(); private String title; private String cronSchedule; private String owner; private String queryString; private boolean saveResult; private boolean useAlert; private String alertQuery; private boolean skipWhileRunning = true; private boolean bootstrapQuery = false; private int suppressInterval; private String mailProfile; private String mailFrom; private String mailTo; private String mailSubject; private boolean enabled = true; private Date created = new Date(); /** * 예약된 쿼리의 식별자를 반환합니다. * * @return 예약된 쿼리 식별자 */ public String getGuid() { return guid; } /** * 예약된 쿼리 식별자를 설정합니다. * * @param guid * 예약된 쿼리 식별자 */ public void setGuid(String guid) { this.guid = guid; } /** * 예약된 쿼리의 이름을 반환합니다. * * @return 예약된 쿼리의 이름 */ public String getTitle() { return title; } /** * 예약된 쿼리의 이름을 설정합니다. * * @param title * 예약된 쿼리의 이름 */ public void setTitle(String title) { this.title = title; } /** * CRON 스케줄을 반환합니다. * * @return CRON 스케줄 */ public String getCronSchedule() { return cronSchedule; } /** * CRON 스케줄을 설정합니다. * * @param cronSchedule * CRON 스케줄 */ public void setCronSchedule(String cronSchedule) { this.cronSchedule = cronSchedule; } /** * 예약된 쿼리의 소유자 계정을 반환합니다. * * @return 소유자 계정 */ public String getOwner() { return owner; } /** * 예약된 쿼리의 소유자 계정을 설정합니다. * * @param owner * 소유자 계정 */ public void setOwner(String owner) { this.owner = owner; } /** * 쿼리 문자열을 반환합니다. * * @return 쿼리 문자열 */ public String getQueryString() { return queryString; } /** * 쿼리 문자열을 설정합니다. * * @param queryString * 쿼리문자열 */ public void setQueryString(String queryString) { this.queryString = queryString; } /** * 예약된 쿼리의 실행 결과의 저장 여부를 반환합니다. * * @return 예약된 쿼리의 결과 저장 여부 */ public boolean isSaveResult() { return saveResult; } /** * 예약된 쿼리의 실행 결과의 저장 여부를 설정합니다. * * @param saveResult * 예약된 쿼리의 결과 저장 여부 */ public void setSaveResult(boolean saveResult) { this.saveResult = saveResult; } /** * 경보 기능 사용 여부를 반환합니다. * * @return 경보 기능 사용 여부 */ public boolean isUseAlert() { return useAlert; } /** * 경보 기능 사용 여부를 설정합니다. * * @param useAlert * 경보 기능 사용 여부 */ public void setUseAlert(boolean useAlert) { this.useAlert = useAlert; } /** * 경보 쿼리 문자열을 반환합니다. * * @return 경보 쿼리 문자열 */ public String getAlertQuery() { return alertQuery; } /** * 경보 쿼리 문자열을 설정합니다. * * @param alertQuery * 경보 쿼리 문자열 */ public void setAlertQuery(String alertQuery) { this.alertQuery = alertQuery; } /** * 이전 예약 쿼리 실행 중일 때 현재 예약 쿼리 실행을 건너뛸지 여부를 반환합니다. * * @return 이전 예약 쿼리 실행 중일 때 현재 예약 쿼리 실행 skip 여부 */ public boolean isSkipWhileRunning() { return skipWhileRunning; } /** * 이전 예약 쿼리 실행 중일 때 현재 예약 쿼리 실행을 건너뛸지 여부를 설정합니다. false인 경우엔 예약 쿼리를 중첩모드로 실행합니다. * * @param skipWhileRunning * 이전 예약 쿼리 실행 중일 때 현재 예약 쿼리 실행 skip 여부 */ public void setSkipWhileRunning(boolean skipWhileRunning) { this.skipWhileRunning = skipWhileRunning; } /** * 부팅시 예약 쿼리를 실행할지 여부를 반환합니다. * * @return 부팅시 예약 쿼리 실행 여부 */ public boolean isBootstrapQuery() { return bootstrapQuery; } /** * 부팅시 예약 쿼리를 실행할지 여부를 설정합니다. true인 경우엔 부팅시 예약 쿼리가 실행이 됩니다. * * @param bootstrapQuery * 부팅시 예약 쿼리 실행 여부 */ public void setBootstrapQuery(boolean bootstrapQuery) { this.bootstrapQuery = bootstrapQuery; } /** * 경보 발생 후 동일 경보 발생 시 무시할 주기를 반환합니다. * * @return 경보 무시 기간 (밀리초) */ public int getSuppressInterval() { return suppressInterval; } /** * 경보 발생 후 동일 경보 발생 시 무시할 주기를 설정합니다. * * @param suppressInterval * 경보 무시 기간 (밀리초) */ public void setSuppressInterval(int suppressInterval) { this.suppressInterval = suppressInterval; } /** * 경보 메일 전송 시 사용할 SMTP 프로파일 이름을 반환합니다. * * @return SMTP 프로파일 이름 */ public String getMailProfile() { return mailProfile; } /** * 경보 메일 전송 시 사용할 SMTP 프로파일 이름을 설정합니다. * * @param mailProfile * SMTP 프로파일 이름 */ public void setMailProfile(String mailProfile) { this.mailProfile = mailProfile; } /** * 보낸 사람 메일 주소를 반환합니다. * * @return 보낸 사람 메일 주소 */ public String getMailFrom() { return mailFrom; } /** * 보낸 사람 메일 주소를 설정합니다. * * @param mailFrom * 보낸 사람 메일 주소 */ public void setMailFrom(String mailFrom) { this.mailFrom = mailFrom; } /** * 받는 사람 메일 주소를 반환합니다. * * @return 받는 사람 메일 주소 */ public String getMailTo() { return mailTo; } /** * 받는 사람 메일 주소를 설정합니다. * * @param mailTo * 받는 사람 메일 주소 */ public void setMailTo(String mailTo) { this.mailTo = mailTo; } /** * 경보 메일의 제목 템플릿을 반환합니다. * * @return 경보 메일의 제목 템플릿 */ public String getMailSubject() { return mailSubject; } /** * 경보 메일의 제목 템플릿을 설정합니다. * * @param mailSubject * 경보 메일의 제목 템플릿 */ public void setMailSubject(String mailSubject) { this.mailSubject = mailSubject; } /** * 예약된 쿼리의 활성화 여부를 반환합니다. * * @return 예약된 쿼리의 활성화 여부 */ public boolean isEnabled() { return enabled; } /** * 예약된 쿼리의 활성화 여부를 설정합니다. * * @param enabled * 예약된 쿼리의 활성화 여부 */ public void setEnabled(boolean enabled) { this.enabled = enabled; } /** * 예약된 쿼리의 생성일자를 반환합니다. * * @return 예약된 쿼리의 생성일자 */ public Date getCreated() { return created; } /** * 예약된 쿼리의 생성일자를 설정합니다. * * @param created * 예약된 쿼리의 생성일자 */ public void setCreated(Date created) { this.created = created; } @Override public String toString() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return "guid=" + guid + ", title=" + title + ", cron=" + cronSchedule + ", owner=" + owner + ", query=" + queryString + ", save_result=" + saveResult + ", use_alert=" + useAlert + ", alert_query=" + alertQuery + ", suppress_interval=" + suppressInterval + ", mail_profile=" + mailProfile + ", mail_from=" + mailFrom + ", mail_to=" + mailTo + ", mail_subject=" + mailSubject + ", enabled=" + enabled + ", created=" + df.format(created); } }