EN · DE · RU · FR · ES

#2781: EventManager.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventManager.java Java-Dienst (FullCalendar-Ereignissuche) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventManager.java 60 Zeilen · 19 Code · 33 Kommentare · 8 leer
Ein Suchdienst, der FullCalendar-Ereignisse und Ereignisquellen anhand ihrer Kennungen auflöst. Wenn der FullCalendar-Client einen Ajax-Rückruf mit einer Ereignis-ID und Quell-ID sendet (z. B. hat ein Benutzer auf ein Ereignis geklickt oder es gezogen), verwendet der serverseitige Handler diesen Manager, um die entsprechenden Event- und EventSource-Objekte zu finden. Die Suche durchläuft die konfigurierten Ereignisquellen des Kalenders (Vergleich der UUIDs mittels Objects.equal) und delegiert an den EventProvider jeder Quelle, um das spezifische Ereignis zu finden. Bei nicht übereinstimmenden IDs werden typisierte Ausnahmen ausgelöst (EventSourceNotFoundException, EventNotFoundException).

Architektur

Suchkette

Zweistufige Auflösung: getEventSource(String id) durchläuft die Ereignisquellen des Kalenders (aus Config.getEventSources()) und vergleicht die UUID jeder Quelle mit Objects.equal – Wickets nullsichere Gleichheitshilfe. Bei Übereinstimmung wird die Quelle zurückgegeben; bei keiner Übereinstimmung wird EventSourceNotFoundException ausgelöst. getEvent(String sourceId, String eventId) löst zunächst die Quelle auf und ruft dann source.getEventProvider().getEventForId(eventId) auf – die Ereignissuche wird an den Anbieter der Quelle delegiert (typischerweise eine DAO-gestützte Implementierung). Wenn der Anbieter das Ereignis nicht finden kann, wird EventNotFoundException ausgelöst.

Paketprivater Konstruktor

Der Konstruktor ist paketprivat – nur FullCalendar kann einen EventManager erstellen (über getEventManager()). Dadurch wird sichergestellt, dass der Manager immer einer bestimmten Kalenderinstanz und deren Konfiguration zugeordnet ist.

Verwendung in Rückrufen

Dieser Manager ist die Brücke zwischen Ajax-Rückrufparametern (die Zeichenfolgen-IDs enthalten) und den Java-Domänenobjekten. Wenn beispielsweise ein Ereignisverschiebungs-Rückruf behandelt wird, ruft der Handler getEventManager().getEvent(sourceId, eventId) auf, um das betroffene Ereignisobjekt abzurufen, seine Zeiten in der Datenbank zu aktualisieren und eine Antwort an den Client zurückzugeben.

Git-Verlauf

CommitWas geändert wurde
868d6abb7 bis ceb63e8a1Sechs jährliche Aktualisierungen der Copyright-Header. Die Suchlogik ist stabil geblieben – das zweistufige ID→Quelle→Ereignis-Auflösungsmuster deckt alle Rückrufszenarien ab, und es waren keine zusätzlichen Suchmethoden erforderlich.