/** * 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.ArrayList; import java.util.Date; import java.util.List; /** * 스트림 쿼리의 설정과 상태를 표현합니다. * * @since 0.9.5 * @author xeraph@eediom.com * */ public class StreamQueryInfo { private String name; private String description; private int interval; private String queryString; // logger, table, or stream private String sourceType; private List<String> sources = new ArrayList<String>(); private String owner; private boolean enabled; private Date created = new Date(); private Date modified = new Date(); /** * 스트림 쿼리 이름을 반환합니다. * * @return 스트림 쿼리 이름 */ public String getName() { return name; } /** * 스트림 쿼리 이름을 설정합니다. * * @param name * 스트림 쿼리 이름 */ public void setName(String name) { this.name = name; } /** * 스트림 쿼리에 대한 설명을 반환합니다. * * @return 스트림 쿼리 설명 */ public String getDescription() { return description; } /** * 스트림 쿼리에 대한 설명을 설정합니다. * * @param description * 스트림 쿼리 설명 */ public void setDescription(String description) { this.description = description; } /** * 스트림 쿼리의 새로고침 주기를 반환합니다. * * @return 새로고침 주기 (초) */ public int getInterval() { return interval; } /** * 스트림 쿼리의 새로고침 주기를 설정합니다. 새로고침 주기를 0으로 설정하려면 스트림 쿼리를 구성하는 모든 커맨드가 스트리밍 가능한 * 커맨드이어야 합니다. stats나 sort 같은 커맨드는 입력 끝이 있어야 작업이 완료되므로 0보다 큰 새로고침 주기를 필요로 * 합니다. * * @param interval * 새로고침 주기 (초) */ public void setInterval(int interval) { this.interval = interval; } /** * 쿼리 문자열을 반환합니다. * * @return 쿼리 문자열 */ public String getQueryString() { return queryString; } /** * 쿼리 문자열을 설정합니다. * * @param queryString * 쿼리 문자열 */ public void setQueryString(String queryString) { this.queryString = queryString; } /** * 스트림 쿼리의 실시간 입력 유형을 반환합니다. 입력 유형은 logger, table, stream 중 하나입니다. * * @return 실시간 입력 유형 */ public String getSourceType() { return sourceType; } /** * 스트림 쿼리의 실시간 입력 유형을 설정합니다. 입력 유형은 logger, table, stream 중 하나입니다. * * @param sourceType * 실시간 입력 유형 */ public void setSourceType(String sourceType) { if (sourceType != null && !sourceType.equals("logger") && !sourceType.equals("table") && !sourceType.equals("stream")) throw new IllegalArgumentException(); this.sourceType = sourceType; } /** * 스트림 쿼리의 입력 데이터 원본의 목록을 반환합니다. * * @return 데이터 원본 목록 */ public List<String> getSources() { return sources; } /** * 스트림 쿼리의 입력 데이터 원본의 목록을 설정합니다. * * @param sources * 데이터 원본 목록 */ public void setSources(List<String> sources) { this.sources = sources; } /** * 스트림 쿼리의 소유자를 반환합니다. * * @return 스트림 쿼리의 소유자 */ public String getOwner() { return owner; } /** * 스트림 쿼리의 소유자를 설정합니다. * * @param owner * 스트림 쿼리의 소유자 */ public void setOwner(String owner) { this.owner = owner; } /** * 스트림 쿼리의 활성화 여부를 반환합니다. * * @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; } /** * 스트림 쿼리의 마지막 수정일자를 반환합니다. * * @return 스트림 쿼리의 마지막 수정일자 */ public Date getModified() { return modified; } /** * 스트림 쿼리의 마지막 수정일자를 설정합니다. * * @param modified * 스트림 쿼리의 마지막 수정일자 */ public void setModified(Date modified) { this.modified = modified; } @Override public String toString() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return "name=" + name + ", interval=" + interval + ", query=" + queryString + ", source_type=" + sourceType + ", sources=" + sources + ", owner=" + owner + ", enabled=" + enabled + ", created=" + df.format(created) + ", modified=" + df.format(modified) + ", description=" + description; } }