package ru.hflabs.rcd.task.performer.synchronization; import ru.hflabs.rcd.model.task.TaskParameterDefinition; import ru.hflabs.rcd.task.performer.ParametersHolder; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; /** * Класс <class>SynchronizationParameters</class> реализует декоратор параметров синхронизации справочников * * @see ParametersHolder */ public abstract class SynchronizationParameters extends ParametersHolder { /** Таймаут соединения с сервисом в сек (для бесконечного значение используется 0) */ public static final transient TaskParameterDefinition<Long> TIMEOUT = new TaskParameterDefinition<>("timeout", (long) (5 * 60)); /** Количество потоков синхронизации справочников */ public static final transient TaskParameterDefinition<Integer> POOL_SIZE = new TaskParameterDefinition<>("poolSize", -1); @NotNull @Min(value = 0) @Max(value = Long.MAX_VALUE) public Long getTimeout() { return retrieveParameter(TIMEOUT.name, Long.class); } public void setTimeout(Long timeout) { injectParameter(TIMEOUT.name, timeout); } @Min(value = -1) @Max(value = Integer.MAX_VALUE) public int getPoolSize() { return retrieveParameter(POOL_SIZE.name, Integer.class, POOL_SIZE.value); } public void setPoolSize(int poolSize) { injectParameter(POOL_SIZE.name, poolSize); } }