EventManager.javaEvent и EventSource. Поиск проходит по настроенным источникам событий календаря (сравнивая UUID через Objects.equal) и делегирует поиск конкретного события EventProvider каждого источника. В случае отсутствия совпадений выбрасываются типизированные исключения (EventSourceNotFoundException, EventNotFoundException).Двухэтапное разрешение: getEventSource(String id) перебирает источники событий календаря (из Config.getEventSources()), сравнивая UUID каждого источника с помощью Objects.equal — null-безопасного помощника Wicket для сравнения. При совпадении возвращает источник; при отсутствии совпадения выбрасывает EventSourceNotFoundException. getEvent(String sourceId, String eventId) сначала находит источник, затем вызывает source.getEventProvider().getEventForId(eventId) — делегируя поиск события провайдеру источника (обычно реализация на основе DAO). Если провайдер не может найти событие, выбрасывается EventNotFoundException.
Конструктор имеет пакетный доступ — только FullCalendar может создать EventManager (через getEventManager()). Это гарантирует, что менеджер всегда связан с конкретным экземпляром календаря и его конфигурацией.
Этот менеджер является мостом между параметрами Ajax-обратного вызова (которые содержат строковые идентификаторы) и объектами предметной области Java. Например, при обработке обратного вызова перетаскивания события обработчик вызывает getEventManager().getEvent(sourceId, eventId) для получения затронутого объекта события, обновляет его время в базе данных и возвращает ответ клиенту.
| Коммит | Что изменилось |
|---|---|
868d6abb7 – ceb63e8a1 | Шесть ежегодных обновлений заголовков авторских прав. Логика поиска оставалась стабильной — двухэтапный шаблон ID→Источник→Событие покрывает все сценарии обратных вызовов, и дополнительные методы поиска не потребовались. |