Предоставляет возможность управления состоянием объекта, реализующего интерфейс 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()