/** * @param instance The event object to be wired.. * @param request The client request from which parameter values will be derived. */ public static void wire(Event instance, ClientRequest request) { Class<?> clazz = instance.getClass(); while (clazz != Object.class) { wire(instance, request, clazz); clazz = clazz.getSuperclass(); } }
/** * Extracts an event of the expected class from the client request. * * @param clazz The expected class. * @param request The client request. * @return An event of the expected class, or null if the class is not a subclass of Event, or * if a suitable constructor could not be found. */ private static Event toEvent(Class<?> clazz, ClientRequest request) { try { if (Event.class.isAssignableFrom(clazz)) { Event event = (Event) clazz.newInstance(); EventParameterScanner.wire(event, request); return event; } } catch (InstantiationException | IllegalAccessException e) { return toEvent(clazz.getSuperclass(), request); } return null; }