public void install(ControllerContext context, ControllerState fromState, ControllerState toState) throws Throwable { ControllerContextAction action = getAction(context, toState); if (action != null) action.install(context); }
/** * Add scoped alias. * * @param alias the alias * @param original the original * @param scopeKey the scope key * @param controller the controller * @throws Throwable for any error */ public static void addAlias(Object alias, Object original, ScopeKey scopeKey, Controller controller) throws Throwable { if (controller instanceof AbstractController == false) throw new IllegalArgumentException("Can only handle AbstractController."); AbstractController ac = (AbstractController)controller; Map<ControllerState, ControllerContextAction> map = ac.createAliasActions(); ControllerContextActions actions = new AbstractControllerContextActions(map); controller.install(new ScopedAliasControllerContext(alias, original, scopeKey, actions)); }
public void addAlias(Object alias, Object original) throws Throwable { Map<ControllerState, ControllerContextAction> map = createAliasActions(); ControllerContextActions actions = new AbstractControllerContextActions(map); AliasControllerContext context = new InnerAliasControllerContext(alias, getId(), original, actions); preAliasInstall(context); install(context); // is alias in error Throwable error = context.getError(); if (error != null) throw error; if (ControllerState.ERROR.equals(context.getState())) throw new IllegalArgumentException("Alias " + context + " is in error."); }
public void uninstall(ControllerContext context, ControllerState fromState, ControllerState toState) { ControllerContextAction action = getAction(context, fromState); if (action != null) action.uninstall(context); }