/* $Id: ScheduleRecord.java 988245 2010-08-23 18:39:35Z kwright $ */ /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.apache.manifoldcf.crawler.interfaces; import org.apache.manifoldcf.core.interfaces.*; import org.apache.manifoldcf.agents.interfaces.*; import java.util.*; /** This class describes a single scheduling record, which describes a matching date and time for * a job to be started or unblocked. It also describes the throttle rate that should be in effect * for the interval. This class is immutable. */ public class ScheduleRecord { public static final String _rcsid = "@(#)$Id: ScheduleRecord.java 988245 2010-08-23 18:39:35Z kwright $"; // Absolute job-triggering times protected final EnumeratedValues dayOfWeek; protected final EnumeratedValues monthOfYear; protected final EnumeratedValues dayOfMonth; protected final EnumeratedValues year; protected final EnumeratedValues hourOfDay; protected final EnumeratedValues minutesOfHour; protected final String timezone; protected final Long duration; protected final boolean requestMinimum; /** Constructor. *@param dayOfWeek is the day-of-week enumeration. *@param monthOfYear is the month-of-year enumeration. *@param dayOfMonth is the day-of-month enumeration. *@param year is the year enumeration. *@param hourOfDay is the time of day enumeration. *@param minutesOfHour is the minutes enumeration. *@param timezone is the timezone. *@param duration is the window duration, or null if infinite. */ public ScheduleRecord(EnumeratedValues dayOfWeek, EnumeratedValues monthOfYear, EnumeratedValues dayOfMonth, EnumeratedValues year, EnumeratedValues hourOfDay, EnumeratedValues minutesOfHour, String timezone, Long duration, boolean requestMinimum) { this.dayOfWeek = dayOfWeek; this.monthOfYear = monthOfYear; this.dayOfMonth = dayOfMonth; this.year = year; this.hourOfDay = hourOfDay; this.minutesOfHour = minutesOfHour; this.timezone = timezone; this.duration = duration; this.requestMinimum = requestMinimum; } /** Get the day of week. *@return the enumeration or null. */ public EnumeratedValues getDayOfWeek() { return dayOfWeek; } /** Get the month of year. *@return the enumeration or null. */ public EnumeratedValues getMonthOfYear() { return monthOfYear; } /** Get the day of month. *@return the enumeration or null. */ public EnumeratedValues getDayOfMonth() { return dayOfMonth; } /** Get the year. *@return the enumeration or null. */ public EnumeratedValues getYear() { return year; } /** Get the hour of the day. *@return the enumeration or null. */ public EnumeratedValues getHourOfDay() { return hourOfDay; } /** Get the minutes of the hour. *@return the enumeration or null. */ public EnumeratedValues getMinutesOfHour() { return minutesOfHour; } /** Get the timezone. *@return the timezone or null. */ public String getTimezone() { return timezone; } /** Get the window duration. *@return the duration or null. */ public Long getDuration() { return duration; } /** Get whether the schedule record corresponds to a minimal request or not. *@return true if minimal request. */ public boolean getRequestMinimum() { return requestMinimum; } }