ApplicationContextManager is used to track changes to the runtime context of an ADF application during the request lifecycle. The series of changes that lead to the current application context are represented as a stack data structure.

Any time a change is made to the application context outside of component traversal during a JSF phase, a change object representing the change should be pushed onto the stack using the ApplicationContextManager. For example, if a UI component modifies the application's context by changing how EL expressions get evaluated then the component implementation should push a context change onto the stack when the component becomes active and pop the change when the component is no longer active.

ApplicationContextManager

pushContextChange

Pushes a new context change onto the application context change stack. If a change is pushed at a time in which the change would be illegal, the change will be replaced with a no-op ApplicationContextChange so that popping will restore the stack to the appropriate level.

suspendContext

Suspends the current application context changes on the stack by calling ApplicationContextChange.suspend(FacesContext) on each stack entry, starting from the top of the stack and working down the stack to the root of the page. This operation returns the application back to the root context that existed at the beginning of the current request lifecycle phase. The suspended context changes are remove from the stack so that the stack is empty when this method completes.

Parameters:

context - FacesContext.

Returns:

a handle representing the set of suspend contexts.

suspendContext

Suspends the current application context changes on the stack by calling ApplicationContextChange.suspend(FacesContext) on each stack entry, starting from the top of the stack and working down the stack until the callback signals where to stop suspending to.