- Получение значения - getValue()
-
<ValueType> getValue() -
Возвращает значение, соответствующее текущей модельной дате.
<ValueType> getValue(double time)
- Возвращает значение, соответствующее заданному модельному времени (time).
<ValueType>
getValue(Date date) - Возвращает значение, соответствующее
заданной модельной дате (date).
- Получение таймаута до следующего ключевого момента времени
- getTimeoutToNextValue()
-
double
getTimeoutToNextValue() -
Возвращает таймаут (в единицах модельного времени) от текущего момента
времени до следующего ключевого события расписания.
double
getTimeoutToNextValue(double time) - Возвращает
таймаут (в единицах модельного времени) от заданного момента
времени time до
следующего ключевого события расписания.
double
getTimeoutToNextValue(Date date) - Возвращает
таймаут (в единицах модельного времени) от заданной даты date до следующего
ключевого события расписания.
- Получение времени следующего ключевого момента - getTimeOfNextValue()
-
double
getTimeOfNextValue() - Возвращает время следующего за
текущим временем ключевого момента расписания.
double
getTimeOfNextValue(double time) - Возвращает
время следующего за заданным моментом времени time
ключевого момента расписания.
double
getTimeOfNextValue(Date date) - Возвращает время
следующего за заданной датой date
ключевого момента расписания.
- Получение даты следующего ключевого момента - getDateOfNextValue()
-
Date
getDateOfNextValue() - Возвращает дату следующего за
текущим временем ключевого момента расписания.
Date
getDateOfNextValue(double time)
- Возвращает дату следующего за заданным моментом времени time ключевого момента
расписания.
Date
getDateOfNextValue(Date date)
- Возвращает дату следующего за заданной датой date ключевого момента
расписания.
- Получение следующего значения - getNextValue()
-
<ValueType> getNextValue()
- Возвращает значение, соответствующее следующему за
текущим временем ключевому моменту расписания.
<ValueType> getNextValue(double time)
- Возвращает значение, соответствующее следующему за заданным
моментом времени time ключевому
моменту расписания.
<ValueType> getNextValue(Date date)
- Возвращает значение, соответствующее следующему за заданной
датой date ключевому
моменту расписания.
- Получение единиц модельного времени расписания - getTimeUnits()
-
long
getTimeUnits() - Возвращает единицы времени рапсисания
(одну из TIME_UNIT_* констант)
- Cоздание и инициализация расписания с
помощью конструктора
- new Schedule<ValueType>(Utilities
owner, boolean calendarType, int
firstDayOfWeek, long period, long timeUnits, Long snapTo, <ValueType>
defaultValue, long[] starts, long[] ends, Object[] values, boolean
glueIntervals, boolean[] exceptionsAnnually, boolean singleThreadMode)
Пример:
Schedule<Integer>
NursePlan =
new Schedule<Integer>(this, true, MONDAY, 1L *
TIME_UNIT_DAY,
TIME_UNIT_DAY, null, 0, varNursePlanTime, null, varNursePlanNumber,
false, null, true );
Параметры:
owner
- "владелец" расписания - класс активного объекта или эксперимент, в
котором находится расписание.
calendarType
- если параметр равен true,
то расписание работает с календарными датами. Например, если Вы
зададите ежедневный интервал 8:00-17:00, то эти времена будут
соблюдаться даже в случае перехода на зимнее или летнее время.
Если этот параметр равен false,
то 1 день будет всегда равен 24*60*60 секунд, что удобно при
моделировании физических устройств, функционирующих без привязки к
календарным временам.
firstDayOfWeek
- первый день недели, этот параметр используется, если calendarType == true
и timeUnit ==
TIME_UNIT_WEEK
period - период
повторения цикличности, заданной в расписании, измеренный в
миллисекундах. Миллисекунды применяются - если calendarType
равен false или
допускаются - если true,
при этом 1000*60*60*24 миллисекунд означают один
день независимо от перевода времени на зимнее или летнее время.
timeUnits
- единицы времени расписания, одна из констант TIME_UNIT_*
snapTo
- абсолютная дата (если calendarType==true)
или количество миллисекунд, начиная от нулевого модельного времени
(если calendarType==false),
указывающие на момент времени, к которому следует привязать расписание
(в свойствах расписания аналогичный параметр задается в свойстве Привязать к). Этот
момент клонируется в обе стороны по временной оси, через периоды
повторения расписания.
Параметр может быть равен null
- в этом случае расписание будет привязано к дате, сответствующей
нулевому модельному времени.
defaultValue
- значение по умолчанию, которое будет использоваться
расписанием для тех интервалов времени, которые не будут покрыты этим
расписанием.
starts
- массив начальных времен интервалов, измеренных в
миллисекундах от начала периода.
Миллисекунды применяются - если calendarType
равен false или
допускаются - если true,
при этом 1000*60*60*24 миллисекунд означают один день
независимо от перевода времени на зимнее или летнее время. Этот массив
может также содержать начальные времена исключительных периодов (см.
описание параметра exceptionsAnnually).
ends
- массив конечных времен интервалов, описание см. выше у
параметра starts.
values
- массив значений интервалов.
glueIntervals
- если параметр равен true,
то накладывающиеся друг на друга интервалы с одним и тем же значением
будут объединены, т.е.
два интервала "День1 18:00-24:00 значение=5" и "День2 00:00-02:00
значение=5"
будут обрабатываться как один интервал "День 1 18:00 - День 2 02:00
значение=5".
exceptionsAnnually
-
массив флагов для исключений (true
означает ежегодное исключение, false
- единожды случающееся), может быть пустым. Число исключений равно
длине массива exceptionsAnnually.
Данные об исключениях считываются из массивов starts,
ends и values. Эти
данные хранятся в конце этих массивов. Обратите внмание, что в
случае исключений массивы starts
и ends содержат
абсолютные даты в виде чисел в формате long (см.
Date.getTime()).
singleThreadMode
- этот параметр задает, будет ли расписание работать в одном потоке или
же будет использоваться несколькими параллельно выполняющимися
потоками. Обычно в качестве значения этого параметра
задается true,
если расписание задано в классе активного объекта или в
эксперименте, не позволяющем параллельное выполнение итераций
(например, в простом эксперименте). Иначе задается значение false