EventProvider.javagetEvents(DateTime start, DateTime end) devuelve una colección de eventos dentro de un rango de tiempo dado (se llama cuando FullCalendar obtiene datos para un rango de fechas visible), y getEventForId(String id) recupera un solo evento por identificador (se llama durante las devoluciones de llamada Ajax para clics, arrastres y redimensionamientos de eventos). Las implementaciones actúan como puente entre este contrato y la capa de dominio de ProjectForge — típicamente un proveedor respaldado por DAO que consulta la base de datos para eventos de calendario, entradas de hoja de tiempo o registros de vacaciones dentro de la ventana de fechas solicitada.La interfaz extiende Serializable, lo cual es obligatorio en el modelo de componentes de Wicket. Las instancias de EventProvider se almacenan como campos de EventSource, que se serializa como parte del estado de página del componente FullCalendar. El almacén de páginas de Wicket (que puede persistir páginas en disco o en una base de datos entre solicitudes) requiere que todos los objetos en el árbol de componentes sean serializables.
La firma getEvents(DateTime start, DateTime end) sigue el protocolo de obtención de eventos de FullCalendar: el cliente envía marcas de tiempo de inicio y fin (como milisegundos de época) basadas en la vista de calendario actualmente visible, y el servidor devuelve solo los eventos dentro de esa ventana. Esto permite la carga diferida — un calendario con años de datos solo carga eventos para el mes/semana actualmente mostrado. Las implementaciones usan DateTime de Joda-Time para comparaciones de rango seguras en cuanto a zona horaria.
getEventForId(String id) es la búsqueda puntual que se llama durante las devoluciones de llamada Ajax. El cliente envía el ID de cadena del evento (típicamente una clave primaria de base de datos convertida a cadena), y el proveedor debe devolver el Event correspondiente o lanzar EventNotFoundException. La separación de getEvents permite consultas optimizadas de un solo registro en lugar de volver a escanear todo el rango de fechas.
| Commit | Qué cambió |
|---|---|
868d6abb7 a ceb63e8a1 | Seis actualizaciones anuales del encabezado de derechos de autor. El contrato de la interfaz se ha mantenido estable — el diseño de dos métodos (consulta de rango + búsqueda puntual) cubre todos los patrones de acceso a datos de FullCalendar utilizados por la aplicación. |