/** * Copyright (C) 2014-2015 LinkedIn Corp. (pinot-core@linkedin.com) * * 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 com.linkedin.thirdeye.hadoop.config; import com.fasterxml.jackson.annotation.JsonProperty; import com.linkedin.pinot.common.data.TimeGranularitySpec.TimeFormat; import java.util.concurrent.TimeUnit; /** This class represents the time spec for thirdeye-hadoop jobs * @param columnName - columnName which represents time * @param timeGranularity - time granularity for the time column */ public class TimeSpec { private static final TimeGranularity DEFAULT_TIME_GRANULARITY = new TimeGranularity(1, TimeUnit.HOURS); private static final String DEFAULT_TIME_FORMAT = TimeFormat.EPOCH.toString(); private String columnName; private TimeGranularity timeGranularity = DEFAULT_TIME_GRANULARITY; private String timeFormat = DEFAULT_TIME_FORMAT; public TimeSpec() { } public TimeSpec(String columnName, TimeGranularity timeGranularity, String timeFormat) { this.columnName = columnName; this.timeGranularity = timeGranularity; this.timeFormat = timeFormat; } @JsonProperty public String getColumnName() { return columnName; } @JsonProperty public TimeGranularity getTimeGranularity() { return timeGranularity; } @JsonProperty public String getTimeFormat() { return timeFormat; } }