/** * Invokes {@link Initiator#doInit}, if any, and returns an instance of{@link Initiators}. * * @param sysinits the system-level initiators */ @SuppressWarnings("unchecked") public static final Initiators doInit(PageDefinition pagedef, Page page, Initiator[] sysinits) { if (sysinits != null) try { for (int j = 0; j < sysinits.length; ++j) sysinits[j].doInit(page, Collections.EMPTY_MAP); } catch (Throwable ex) { throw UiException.Aide.wrap(ex); } final List<Initiator> inits = pagedef != null ? pagedef.doInit(page) : null; boolean sysinitEx = false; if (sysinits != null) for (int j = 0; j < sysinits.length; ++j) if (sysinits[j] instanceof InitiatorExt) { sysinitEx = true; break; } boolean initEx = false; if (inits != null) for (Initiator init : inits) if (init instanceof InitiatorExt) { initEx = true; break; } if (!sysinitEx && !initEx) return new Initiators(); return new RealInits(sysinits, inits, sysinitEx, initEx); }