Предоставляет возможность управления состоянием объекта, реализующего интерфейс WithState
.
- state: Объект класса
State
, представляющий текущее состояние объекта.
- Конструктор:
WithState(condition: Condition = NOT_STARTED)
: Создает объектWithState
с указанным начальным состоянием.
Представляет состояние объекта и позволяет управлять его жизненным циклом.
- condition: Текущее состояние объекта.
- shutdownReason: Причина завершения работы объекта.
- shutdownLatch:
CountDownLatch
, используемый для ожидания завершения работы объекта.
-
Методы управления состоянием:
starting()
: Переводит объект в состояние "запускается".active()
: Переводит объект в состояние "активен".shuttingDown()
: Переводит объект в состояние "завершается".shutdown()
: Переводит объект в состояние "завершен".awaitShutdown()
: Ожидает завершения работы объекта.
-
Дополнительные методы:
isShutdownTypeState()
: Проверяет, является ли текущее состояние объекта "завершающимся" или "завершенным".
Представляет возможные состояния объекта.
- NOT_STARTED: Не запущен.
- STARTING: Запускается.
- ACTIVE: Активен.
- SHUTTING_DOWN: Завершается.
- SHUT_DOWN: Завершен.
Пример использования классов WithState
и State
:
// Создание объекта с указанием начального состояния
val myComponent = MyComponent()
val withState = WithState(Condition.NOT_STARTED)
// Запуск компонента
withState.state.starting()
// Ожидание завершения работы компонента
withState.state.awaitShutdown()