All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.faces.event.ExceptionQueuedEventContext Maven / Gradle / Ivy

Go to download

Jakarta Server Faces defines an MVC framework for building user interfaces for web applications, including UI components, state management, event handing, input validation, page navigation, and support for internationalization and accessibility.

There is a newer version: 3.1.0.SP02
Show newest version
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package javax.faces.event;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collections;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;


/**
 * 

This helper class provides context to * the {@link ExceptionQueuedEvent} regarding the state of the system at the * point in time when the ExceptionQueuedEvent occurs and links * the ExceptionQueuedEvent to the {@link * javax.faces.context.ExceptionHandler} by virtue of implementing * {@link SystemEventListener}.

* * @since 2.0 */ public class ExceptionQueuedEventContext implements SystemEventListenerHolder { /** *

The presence of an entry under this * key in the Map returned from {@link #getAttributes} * indicates the event occurred during the “before * phase” part of the current lifecycle phase.

*/ public static final String IN_BEFORE_PHASE_KEY = ExceptionQueuedEventContext.class.getName() + ".IN_BEFORE_PHASE"; /** *

The presence of an entry under this * key in the Map returned from {@link #getAttributes} * indicates the event occurred during the “after * phase” part of the current lifecycle phase.

*/ public static final String IN_AFTER_PHASE_KEY = ExceptionQueuedEventContext.class.getName() + ".IN_AFTER_PHASE"; private FacesContext context; private Throwable thrown; private UIComponent component; private PhaseId phaseId; private Map attributes; private List listener; // ------------------------------------------------------------ Constructors /** *

Instantiate a new * ExceptionQueuedEventContext that indicates the argument * Throwable just occurred.

* * @param context {@link FacesContext} for the current request * @param thrown the Throwable that is the context for * this ExceptionQueuedEventContext instance. */ public ExceptionQueuedEventContext(FacesContext context, Throwable thrown) { this(context, thrown, null, null); } /** *

Instantiate a new * ExceptionQueuedEventContext that indicates the argument * Throwable just occurred, relevant to the argument * component. * * @param context {@link FacesContext} for the current request * @param thrown the Throwable that is the context for * this ExceptionQueuedEventContext instance. * @param component the {@link UIComponent} instance to which this * ExceptionQueuedEventContext pertains */ public ExceptionQueuedEventContext(FacesContext context, Throwable thrown, UIComponent component) { this (context, thrown, component, null); } /** *

Instantiate a new * ExceptionQueuedEventContext that indicates the argument * Throwable just occurred, relevant to the argument * component, during the lifecycle phase * phaseId.

* * @param context {@link FacesContext} for the current request * @param thrown the Throwable that is the context for * this ExceptionQueuedEventContext instance. * * @param component the UIComponent that is relevant to * the context. * * @param phaseId the PhaseId at the time this * ExeceptionEventContext is created. */ public ExceptionQueuedEventContext(FacesContext context, Throwable thrown, UIComponent component, PhaseId phaseId) { this.context = context; this.thrown = thrown; this.component = component; this.phaseId = ((phaseId == null) ? context.getCurrentPhaseId() : phaseId); } // ---------------------------------------------------------- Public Methods /** *

The {@link FacesContext} for this * request.

* @return the {@link FacesContext} used to create this * ExceptionQueuedEventContext instance. */ public FacesContext getContext() { return context; } /** *

Return the exception * property.

* * @return the exception */ public Throwable getException() { return thrown; } /** *

Return the UIComponent * which was being processed when the exception was thrown. If none * or not available, this will be null.

* * @return the component */ public UIComponent getComponent() { return this.component; } /** *

Return the PhaseId * which was being processed when the exception was thrown. If none * or not available, this will be null.

* * @return the phase id */ public PhaseId getPhaseId() { return this.phaseId; } /** * @return true if the exception occurred during the * before phase processing for a particular lifecycle * phase */ public boolean inBeforePhase() { return isAttributeDefined(IN_BEFORE_PHASE_KEY); } /** * @return true if the exception occurred during the * after phase processing for a particular lifecycle * phase */ public boolean inAfterPhase() { return isAttributeDefined(IN_AFTER_PHASE_KEY); } /** *

A Map of attributes * relevant to the context of this ExceptionQueuedEvent.

* * @return attributes related to this context */ public Map getAttributes() { if (null == attributes) { attributes = new HashMap<>(); } return attributes; } /** *

Return a List that * contains a single entry, the {@link * javax.faces.context.ExceptionHandler} for the current * request.

*/ @Override public List getListenersForEventClass(Class facesEventClass) { if (null == listener) { List list = new ArrayList<>(1); list.add(context.getExceptionHandler()); listener = Collections.unmodifiableList(list); } return listener; } // --------------------------------------------------------- Private Methods private boolean isAttributeDefined(String key) { return ((attributes != null) && attributes.containsKey(key)); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy