-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addBehavior
(String behaviorId, String behaviorClass) Register a new mapping of behavior id to the name of the correspondingBehavior
class.void
addComponent
(String componentType, String componentClass) Register a new mapping of component type to the name of the correspondingUIComponent
class.void
addConverter
(Class<?> targetClass, String converterClass) Register a new converter class that is capable of performing conversions for the specified target class.void
addConverter
(String converterId, String converterClass) Register a new mapping of converter id to the name of the correspondingConverter
class.void
addDefaultValidatorId
(String validatorId) Register a validator by its id that is applied to allUIInput
components in a view.void
addELContextListener
(ELContextListener listener) Provide a way for Faces applications to register anELContextListener
that will be notified on creation ofELContext
instances.void
addELResolver
(ELResolver resolver) Cause an the argumentresolver
to be added to the resolver chain as specified in section 5.3.2 "ELResolver" of the Jakarta Faces Specification Document.void
Cause the argumentresolver
to be added to the head of the resolver chain.void
addValidator
(String validatorId, String validatorClass) Register a new mapping of validator id to the name of the correspondingValidator
class.createBehavior
(String behaviorId) Instantiate and return a newBehavior
instance of the class specified by a previous call toaddBehavior()
for the specified behavior id.createComponent
(ValueExpression componentExpression, FacesContext context, String componentType) createComponent
(ValueExpression componentExpression, FacesContext context, String componentType, String rendererType) LikeApplication.createComponent(ValueExpression, FacesContext, String)
except theRenderer
for the component to be returned must be inspected for the annotations mentioned inApplication.createComponent(ValueExpression, FacesContext, String)
as specified in the documentation for that method.createComponent
(FacesContext context, Resource componentResource) createComponent
(FacesContext context, String componentType, String rendererType) LikeApplication.createComponent(String)
except theRenderer
for the component to be returned must be inspected for the annotations mentioned inApplication.createComponent(ValueExpression, FacesContext, String)
as specified in the documentation for that method.createComponent
(String componentType) Instantiate and return a newUIComponent
instance of the class specified by a previous call toaddComponent()
for the specified component type.Converter
<?> createConverter
(Class<?> targetClass) Instantiate and return a newConverter
instance of the class that has registered itself as capable of performing conversions for objects of the specified type.Converter
<?> createConverter
(String converterId) Instantiate and return a newConverter
instance of the class specified by a previous call toaddConverter()
for the specified converter id.Validator
<?> createValidator
(String validatorId) Instantiate and return a newValidator
instance of the class specified by a previous call toaddValidator()
for the specified validator id.<T> T
evaluateExpressionGet
(FacesContext context, String expression, Class<? extends T> expectedType) Get a value by evaluating an expression.Return the defaultActionListener
to be registered for allActionSource
components in this application.Return anIterator
over the set of currently registered behavior ids for thisApplication
.Return anIterator
over the set of currently defined component types for thisApplication
.Return anIterator
over the set of currently registered converter ids for thisApplication
.Return anIterator
over the set ofClass
instances for whichConverter
classes have been explicitly registered.Return the defaultLocale
for this application.Return therenderKitId
to be used for rendering this application.Return an immutableMap
over the set of currently registered default validator IDs and their class name for thisApplication
.If no calls have been made toApplication.addELContextListener(jakarta.el.ELContextListener)
, this method must return an empty array.Return the singletonELResolver
instance to be used for all Jakarta Expression Language resolution.Return theExpressionFactory
instance for this application.Return the thread-safe singletonFlowHandler
for this application.Return the fully qualified class name of theResourceBundle
to be used for Jakarta Faces messages for this application.Return theNavigationHandler
instance that will be passed the outcome returned by any invoked application action for this web application.Return the project stage for the currently running application instance.getResourceBundle
(FacesContext context, String var) Find aResourceBundle
as defined in the application configuration resources under the specified name.Return the singleton, stateless, thread-safeResourceHandler
for this application.Return the thread-safe singletonSearchExpressionHandler
for this application.Return the singletonSearchKeywordResolver
instance to be used for all search keyword resolution.Return theStateManager
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.Return anIterator
over the supportedLocale
s for this appication.Return anIterator
over the set of currently registered validator ids for thisApplication
.Return theViewHandler
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.void
publishEvent
(FacesContext context, Class<? extends SystemEvent> systemEventClass, Class<?> sourceBaseType, Object source) This method functions exactly likeApplication.publishEvent(FacesContext,Class,Object)
, except the run-time must use the argumentsourceBaseType
to find the matching listener instead of using theClass
of thesource
argument.void
publishEvent
(FacesContext context, Class<? extends SystemEvent> systemEventClass, Object source) IfFacesContext.isProcessingEvents()
istrue
and there are one or more listeners for events of the type represented bysystemEventClass
, call those listeners, passingsource
as the source of the event.void
removeELContextListener
(ELContextListener listener) Remove the argumentlistener
from the list ofELContextListener
s.void
setActionListener
(ActionListener actionListener) Set the defaultActionListener
to be registered for allActionSource
components.void
setCompositeELResolver
(FacesCompositeELResolver compositeELResolver) void
setDefaultLocale
(Locale locale) Set the defaultLocale
for this application.void
setDefaultRenderKitId
(String renderKitId) Set therenderKitId
to be used to render this application.void
setFlowHandler
(FlowHandler flowHandler) Set theFlowHandler
instance used by theNavigationHandler
to satisfy the requirements of the faces flows feature.void
setMessageBundle
(String messageBundle) Set the fully qualified class name of theResourceBundle
to be used for Jakarta Faces messages for this application.void
setNavigationHandler
(NavigationHandler navigationHandler) Set theNavigationHandler
instance that will be passed the outcome returned by any invoked application action for this web application.void
setResourceHandler
(ResourceHandler resourceHandler) Set theResourceHandler
instance that will be utilized for rendering the markup for resources, and for satisfying client requests to serve up resources.void
setSearchExpressionHandler
(SearchExpressionHandler searchExpressionHandler) Set theSearchExpressionHandler
instance used by the application.void
setStateManager
(StateManager stateManager) Set theStateManager
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.void
setSupportedLocales
(Collection<Locale> newLocales) Set theLocale
instances representing the supportedLocale
s for this application.void
setViewHandler
(ViewHandler viewHandler) Set theViewHandler
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.void
subscribeToEvent
(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) Install the listener instance referenced by argumentlistener
into application as a listener for events of typesystemEventClass
.void
subscribeToEvent
(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) Install the listener instance referenced by argumentlistener
into the application as a listener for events of typesystemEventClass
that originate from objects of typesourceClass
.void
unsubscribeFromEvent
(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) Remove the listener instance referenced by argumentlistener
from the application as a listener for events of typesystemEventClass
.void
unsubscribeFromEvent
(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) Remove the listener instance referenced by argumentlistener
from the application as a listener for events of typesystemEventClass
that originate from objects of typesourceClass
.
-
Field Details
-
THIS_LIBRARY
- See Also:
-
-
Constructor Details
-
ApplicationImpl
public ApplicationImpl()Constructor
-
-
Method Details
-
publishEvent
public void publishEvent(FacesContext context, Class<? extends SystemEvent> systemEventClass, Object source) Description copied from class:Application
If
FacesContext.isProcessingEvents()
istrue
and there are one or more listeners for events of the type represented bysystemEventClass
, call those listeners, passingsource
as the source of the event. The implementation should be as fast as possible in determining whether or not a listener for the givensystemEventClass
andsource
has been installed, and should return immediately once such a determination has been made. The implementation ofpublishEvent
must honor the requirements stated inApplication.subscribeToEvent(java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Class<?>, jakarta.faces.event.SystemEventListener)
regarding the storage and retrieval of listener instances. Specifically, ifApplication.subscribeToEvent(Class,Class,SystemEventListener)
was called, thesourceClass
argument must match exactly theClass
of thesource
argument in the call topublishEvent()
. The implementation must not do any inheritance hierarachy inspection when looking for a match between thesourceClass
passed toApplication.subscribeToEvent(Class,Class,SystemEventListener)
and thesourceClass
passed topublishEvent()
in order to find any listeners to which the event should be published. In the case where theClass
of thesource
argument does not match theClass
of thesourceClass
used when the listener was subscribed usingsubscribeToEvent()
,Application.publishEvent(FacesContext,Class,Class,Object)
can be used to provide theClass
used to perform the listener lookup and match.The default implementation must implement an algorithm semantically equivalent to the following to locate listener instances and to invoke them.
-
If the
source
argument implementsSystemEventListenerHolder
, callSystemEventListenerHolder.getListenersForEventClass(java.lang.Class<? extends jakarta.faces.event.SystemEvent>)
on it, passing thesystemEventClass
argument. If the list is not empty, perform algorithm traverseListenerList on the list. -
If any view level listeners have been installed by previous calls to
Application.subscribeToEvent(Class, Class, jakarta.faces.event.SystemEventListener)
on theUIViewRoot
, perform algorithm traverseListenerList on the list of listeners for that event installed on theUIViewRoot
. -
If any
Application
level listeners have been installed by previous calls toApplication.subscribeToEvent(Class, Class, jakarta.faces.event.SystemEventListener)
, perform algorithm traverseListenerList on the list. -
If any
Application
level listeners have been installed by previous calls toApplication.subscribeToEvent(Class, jakarta.faces.event.SystemEventListener)
, perform algorithm traverseListenerList on the list.
If the act of invoking the
processListener
method causes anAbortProcessingException
to be thrown, processing of the listeners must be aborted, no further processing of the listeners for this event must take place, and the exception must be logged withLevel.SEVERE
.Algorithm traverseListenerList: For each listener in the list,
-
Call
SystemEventListener.isListenerForSource(java.lang.Object)
, passing thesource
argument. If this returnsfalse
, take no action on the listener. -
Otherwise, if the event to be passed to the listener instances has not yet been constructed, construct the event, passing
source
as the argument to the one-argument constructor that takes anObject
. This same event instance must be passed to all listener instances. -
Call
SystemEvent.isAppropriateListener(jakarta.faces.event.FacesListener)
, passing the listener instance as the argument. If this returnsfalse
, take no action on the listener. -
Call
SystemEvent.processListener(jakarta.faces.event.FacesListener)
, passing the listener instance.
A default implementation is provided that throws
.UnsupportedOperationException
so that users that decorateApplication
can continue to function- Overrides:
publishEvent
in classApplication
- Parameters:
context
- theFacesContext
for the current requestsystemEventClass
- TheClass
of event that is being published.source
- The source for the event of typesystemEventClass
.- See Also:
-
-
publishEvent
public void publishEvent(FacesContext context, Class<? extends SystemEvent> systemEventClass, Class<?> sourceBaseType, Object source) Description copied from class:Application
This method functions exactly like
Application.publishEvent(FacesContext,Class,Object)
, except the run-time must use the argumentsourceBaseType
to find the matching listener instead of using theClass
of thesource
argument.A default implementation is provided that throws
.UnsupportedOperationException
so that users that decorateApplication
can continue to function- Overrides:
publishEvent
in classApplication
- Parameters:
context
- theFacesContext
for the current requestsystemEventClass
- TheClass
of event that is being published.sourceBaseType
- TheClass
of the source event that must be used to lookup the listener to which this event must be published. If this argument isnull
the return fromsource.getClass()
must be used as thesourceBaseType
.source
- The source for the event of typesystemEventClass
.- See Also:
-
subscribeToEvent
public void subscribeToEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) Description copied from class:Application
Install the listener instance referenced by argument
listener
into application as a listener for events of typesystemEventClass
. The default implementation simply calls through toApplication.subscribeToEvent(Class, Class, jakarta.faces.event.SystemEventListener)
passingnull
as thesourceClass
argumentA default implementation is provided that throws
.UnsupportedOperationException
so that users that decorateApplication
can continue to function- Overrides:
subscribeToEvent
in classApplication
- Parameters:
systemEventClass
- theClass
of event for whichlistener
must be fired.listener
- the implementation ofSystemEventListener
whoseSystemEventListener.processEvent(jakarta.faces.event.SystemEvent)
method must be called when events of typesystemEventClass
are fired.See
Application.subscribeToEvent(java.lang.Class,java.lang.Class,jakarta.faces.event.SystemEventListener)
for an additional requirement regarding when it is valid to call this method.- See Also:
-
subscribeToEvent
public void subscribeToEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) Description copied from class:Application
Install the listener instance referenced by argument
listener
into the application as a listener for events of typesystemEventClass
that originate from objects of typesourceClass
.If argument
sourceClass
is non-null
,sourceClass
andsystemEventClass
must be used to store the argumentlistener
in the application in such a way that thelistener
can be quickly looked up by the implementation ofApplication.publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object)
givensystemEventClass
and an instance of theClass
referenced bysourceClass
. If argumentsourceClass
isnull
, thelistener
must be discoverable by the implementation ofApplication.publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object)
given onlysystemEventClass
.It is valid to call this method during the processing of an event which was subscribed to by a previous call to this method.
- Overrides:
subscribeToEvent
in classApplication
- Parameters:
systemEventClass
- theClass
of event for whichlistener
must be fired.sourceClass
- theClass
of the instance which causes events of typesystemEventClass
to be fired. May benull
.listener
- the implementation ofSystemEventListener
whoseSystemEventListener.processEvent(jakarta.faces.event.SystemEvent)
method must be called when events of typesystemEventClass
are fired.- See Also:
-
unsubscribeFromEvent
public void unsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) Description copied from class:Application
Remove the listener instance referenced by argument
listener
from the application as a listener for events of typesystemEventClass
. The default implementation simply calls through toApplication.unsubscribeFromEvent(Class, jakarta.faces.event.SystemEventListener)
passingnull
as thesourceClass
argumentSee
Application.subscribeToEvent(java.lang.Class,java.lang.Class,jakarta.faces.event.SystemEventListener)
for an additional requirement regarding when it is valid to call this method.- Overrides:
unsubscribeFromEvent
in classApplication
- Parameters:
systemEventClass
- theClass
of event for whichlistener
must be fired.listener
- the implementation ofSystemEventListener
to remove from the internal data structure.- See Also:
-
unsubscribeFromEvent
public void unsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) Description copied from class:Application
Remove the listener instance referenced by argument
listener
from the application as a listener for events of typesystemEventClass
that originate from objects of typesourceClass
. SeeApplication.subscribeToEvent(Class, Class, jakarta.faces.event.SystemEventListener)
for the specification of how the listener is stored, and therefore, how it must be removed.See
Application.subscribeToEvent(java.lang.Class,java.lang.Class,jakarta.faces.event.SystemEventListener)
for an additional requirement regarding when it is valid to call this method.- Overrides:
unsubscribeFromEvent
in classApplication
- Parameters:
systemEventClass
- theClass
of event for whichlistener
must be fired.sourceClass
- theClass
of the instance which causes events of typesystemEventClass
to be fired. May benull
.listener
- the implementation ofSystemEventListener
to remove from the internal data structure.- See Also:
-
addELContextListener
Description copied from class:Application
Provide a way for Faces applications to register an
ELContextListener
that will be notified on creation ofELContext
instances. This listener will be called once per request.An implementation is provided that throws
UnsupportedOperationException
so that users that decorate theApplication
continue to work.- Overrides:
addELContextListener
in classApplication
- Parameters:
listener
- the Jakarta Expression Language context listener to add.- See Also:
-
removeELContextListener
Description copied from class:Application
Remove the argument
listener
from the list ofELContextListener
s. Iflistener
is null, no exception is thrown and no action is performed. Iflistener
is not in the list, no exception is thrown and no action is performed.An implementation is provided that throws
UnsupportedOperationException
so that users that decorate theApplication
continue to work.- Overrides:
removeELContextListener
in classApplication
- Parameters:
listener
- the Jakarta Expression Language context listener to remove.- See Also:
-
getELContextListeners
Description copied from class:Application
If no calls have been made to
Application.addELContextListener(jakarta.el.ELContextListener)
, this method must return an empty array.Otherwise, return an array representing the list of listeners added by calls to
Application.addELContextListener(jakarta.el.ELContextListener)
.An implementation is provided that throws
UnsupportedOperationException
so that users that decorate theApplication
continue to work.- Overrides:
getELContextListeners
in classApplication
- Returns:
- an array of Jakarta Expression Language context listeners.
- See Also:
-
getExpressionFactory
Description copied from class:Application
Return the
ExpressionFactory
instance for this application. This instance is used by the convenience methodApplication.evaluateExpressionGet(jakarta.faces.context.FacesContext, java.lang.String, java.lang.Class<? extends T>)
.The implementation must return the
ExpressionFactory
from the Expression Language container by callingjakarta.el.ELManager.getExpressionFactory()
.An implementation is provided that throws
UnsupportedOperationException
so that users that decorate theApplication
continue to work.- Overrides:
getExpressionFactory
in classApplication
- Returns:
- the expression factory.
- See Also:
-
evaluateExpressionGet
public <T> T evaluateExpressionGet(FacesContext context, String expression, Class<? extends T> expectedType) throws ELException Description copied from class:Application
Get a value by evaluating an expression.
Call
Application.getExpressionFactory()
then callExpressionFactory.createValueExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class<?>)
passing the argumentexpression
andexpectedType
. CallFacesContext.getELContext()
and pass it toValueExpression.getValue(jakarta.el.ELContext)
, returning the result.An implementation is provided that throws
UnsupportedOperationException
so that users that decorate theApplication
continue to work.- Overrides:
evaluateExpressionGet
in classApplication
- Type Parameters:
T
- the return type.- Parameters:
context
- the Faces context.expression
- the expression.expectedType
- the expected type.- Returns:
- the result of the evaluation.
- Throws:
ELException
- See Also:
-
getELResolver
Description copied from class:Application
Return the singleton
ELResolver
instance to be used for all Jakarta Expression Language resolution. This is actually an instance ofCompositeELResolver
that must contain the followingELResolver
instances in the following order:-
ELResolver
instances declared using the <el-resolver> element in the application configuration resources. -
An
implementation
that wraps the head of the legacyVariableResolver
chain, as per section VariableResolver ChainWrapper in Chapter 5 in the spec document. -
An
implementation
that wraps the head of the legacyPropertyResolver
chain, as per section PropertyResolver ChainWrapper in Chapter 5 in the spec document. -
Any
ELResolver
instances added by calls toApplication.addELResolver(jakarta.el.ELResolver)
.
The default implementation throws
UnsupportedOperationException
and is provided for the sole purpose of not breaking existing applications that extendApplication
.- Overrides:
getELResolver
in classApplication
- Returns:
- the Jakarta Expression Language resolver.
- See Also:
-
-
addELResolver
Description copied from class:Application
Cause an the argument
resolver
to be added to the resolver chain as specified in section 5.3.2 "ELResolver" of the Jakarta Faces Specification Document.It is not possible to remove an
ELResolver
registered with this method, once it has been registered.It is illegal to register an
ELResolver
after the application has received any requests from the client. If an attempt is made to register a listener after that time, anIllegalStateException
must be thrown. This restriction is in place to allow the Jakarta Server Pages container to optimize for the common case where no additionalELResolver
s are in the chain, aside from the standard ones. It is permissible to addELResolver
s before or after initialization to aCompositeELResolver
that is already in the chain.The default implementation throws
UnsupportedOperationException
and is provided for the sole purpose of not breaking existing applications that extendApplication
.- Overrides:
addELResolver
in classApplication
- Parameters:
resolver
- the Jakarta Expression Language resolver to add.- See Also:
-
getApplicationELResolvers
-
getCompositeELResolver
-
setCompositeELResolver
-
getViewHandler
Description copied from class:Application
Return the
ViewHandler
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle. If not explicitly set, a default implementation must be provided that performs the functions described in theViewHandler
description in the Jakarta Faces Specification.- Specified by:
getViewHandler
in classApplication
- Returns:
- the view handler.
- See Also:
-
setViewHandler
Description copied from class:Application
Set the
ViewHandler
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.- Specified by:
setViewHandler
in classApplication
- Parameters:
viewHandler
- The newViewHandler
instance- See Also:
-
getResourceHandler
Description copied from class:Application
Return the singleton, stateless, thread-safe
ResourceHandler
for this application. The Jakarta Faces implementation must support the following techniques for declaring an alternate implementation ofResourceHandler
.-
The
ResourceHandler
implementation is declared in the application configuration resources by giving the fully qualified class name as the value of the<resource-handler>
element within the<application>
element.
In all of the above cases, the runtime must employ the decorator pattern as for every other pluggable artifact in Jakarta Faces.
A default implementation is provided that throws
.UnsupportedOperationException
so that users that decorateApplication
can continue to function- Overrides:
getResourceHandler
in classApplication
- Returns:
- the resource handler.
- See Also:
-
-
setResourceHandler
Description copied from class:Application
Set the
ResourceHandler
instance that will be utilized for rendering the markup for resources, and for satisfying client requests to serve up resources.- Overrides:
setResourceHandler
in classApplication
- Parameters:
resourceHandler
- The newResourceHandler
instance- See Also:
-
getStateManager
Description copied from class:Application
Return the
StateManager
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle. If not explicitly set, a default implementation must be provided that performs the functions described in theStateManager
description in the Jakarta Faces Specification.- Specified by:
getStateManager
in classApplication
- Returns:
- the state manager.
- See Also:
-
setStateManager
Description copied from class:Application
Set the
StateManager
instance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.- Specified by:
setStateManager
in classApplication
- Parameters:
stateManager
- The newStateManager
instance- See Also:
-
getActionListener
Description copied from class:Application
Return the default
ActionListener
to be registered for allActionSource
components in this application. If not explicitly set, a default implementation must be provided that performs the functions as specified in the section 7.1.1 "ActionListener Property" in the chapter 7 "Application Integration" of the Jakarta Faces Specification Document.Note that the specification for the default
ActionListener
contiues to call for the use of a deprecated property (action
) and class (MethodBinding
). Unfortunately, this is necessary because the defaultActionListener
must continue to work with components that do not implementActionSource
, and only implementActionSource
.- Specified by:
getActionListener
in classApplication
- Returns:
- the action listener.
- See Also:
-
setActionListener
Description copied from class:Application
Set the default
ActionListener
to be registered for allActionSource
components.- Specified by:
setActionListener
in classApplication
- Parameters:
actionListener
- The new defaultActionListener
- See Also:
-
getFlowHandler
Description copied from class:Application
Return the thread-safe singleton
FlowHandler
for this application. For implementations declaring compliance with version 2.2 of the specification, this method must never returnnull
, even if the application has no flows. This is necessary to enable dynamic flow creation during the application's lifetime.All implementations that declare compliance with version 2.2 of the specification must implement this method. For the purpose of backward compatibility with environments that extend
Application
but do not override this method, an implementation is provided that returnsnull
. Due to the decoratable nature ofApplication
, code calling this method should always check for anull
return.- Overrides:
getFlowHandler
in classApplication
- Returns:
- the flow handler.
-
setFlowHandler
Description copied from class:Application
Set the
FlowHandler
instance used by theNavigationHandler
to satisfy the requirements of the faces flows feature.- Overrides:
setFlowHandler
in classApplication
- Parameters:
flowHandler
- the flow handler to set.
-
getSupportedLocales
Description copied from class:Application
Return an
Iterator
over the supportedLocale
s for this appication.- Specified by:
getSupportedLocales
in classApplication
- Returns:
- an iterator of the supported locales.
- See Also:
-
setSupportedLocales
Description copied from class:Application
Set the
Locale
instances representing the supportedLocale
s for this application.- Specified by:
setSupportedLocales
in classApplication
- Parameters:
newLocales
- The set of supportedLocale
s for this application- See Also:
-
getDefaultLocale
Description copied from class:Application
Return the default
Locale
for this application. If not explicitly set,null
is returned.- Specified by:
getDefaultLocale
in classApplication
- Returns:
- the default Locale, or
null
. - See Also:
-
setDefaultLocale
Description copied from class:Application
Set the default
Locale
for this application.- Specified by:
setDefaultLocale
in classApplication
- Parameters:
locale
- The new defaultLocale
- See Also:
-
setMessageBundle
Description copied from class:Application
Set the fully qualified class name of the
ResourceBundle
to be used for Jakarta Faces messages for this application. See the JavaDocs for thejava.util.ResourceBundle
class for more information about the syntax for resource bundle names.- Specified by:
setMessageBundle
in classApplication
- Parameters:
messageBundle
- Base name of the resource bundle to be used- See Also:
-
getMessageBundle
Description copied from class:Application
Return the fully qualified class name of the
ResourceBundle
to be used for Jakarta Faces messages for this application. If not explicitly set,null
is returned.- Specified by:
getMessageBundle
in classApplication
- Returns:
- the message bundle class name, or
null
. - See Also:
-
getDefaultRenderKitId
Description copied from class:Application
Return the
renderKitId
to be used for rendering this application. If not explicitly set,null
is returned.- Specified by:
getDefaultRenderKitId
in classApplication
- Returns:
- the default render kit id, or
null
. - See Also:
-
setDefaultRenderKitId
Description copied from class:Application
Set the
renderKitId
to be used to render this application. Unless the client has provided a customViewHandler
that supports the use of multipleRenderKit
instances in the same application, this method must only be called at application startup, before any Faces requests have been processed. This is a limitation of the current Specification, and may be lifted in a future release.- Specified by:
setDefaultRenderKitId
in classApplication
- Parameters:
renderKitId
- the render kit id to set.- See Also:
-
getResourceBundle
Description copied from class:Application
Find a
ResourceBundle
as defined in the application configuration resources under the specified name. If aResourceBundle
was defined for the name, return an instance that uses the locale of the currentUIViewRoot
.The default implementation throws
UnsupportedOperationException
and is provided for the sole purpose of not breaking existing applications that extend this class.- Overrides:
getResourceBundle
in classApplication
- Parameters:
context
- the Faces context.var
- the name of the resource bundle.- Returns:
- the resource bundle.
- See Also:
-
addBehavior
Description copied from class:Application
Register a new mapping of behavior id to the name of the corresponding
Behavior
class. This allows subsequent calls tocreateBehavior()
to serve as a factory forBehavior
instances.- Overrides:
addBehavior
in classApplication
- Parameters:
behaviorId
- The behavior id to be registeredbehaviorClass
- The fully qualified class name of the correspondingBehavior
implementation- See Also:
-
createBehavior
Description copied from class:Application
Instantiate and return a new
Behavior
instance of the class specified by a previous call toaddBehavior()
for the specified behavior id.- Overrides:
createBehavior
in classApplication
- Parameters:
behaviorId
- The behavior id for which to create and return a newBehavior
instance- Returns:
- the behavior.
- Throws:
FacesException
- if theBehavior
cannot be created- See Also:
-
getBehaviorIds
Description copied from class:Application
Return an
Iterator
over the set of currently registered behavior ids for thisApplication
.- Overrides:
getBehaviorIds
in classApplication
- Returns:
- an iterator with behavior ids.
- See Also:
-
createComponent
Description copied from class:Application
Instantiate and return a new
UIComponent
instance of the class specified by a previous call toaddComponent()
for the specified component type.Before the component instance is returned, it must be inspected for the presence of a
ListenerFor
(orListenersFor
) orResourceDependency
(orResourceDependencies
) annotation. If any of these annotations are present, the action listed inListenerFor
orResourceDependency
must be taken on the component, before it is returned from this method. This variant ofcreateComponent
must not inspect theRenderer
for the component to be returned for any of the afore mentioned annotations. Such inspection is the province ofApplication.createComponent(ValueExpression, FacesContext, String, String)
orApplication.createComponent(FacesContext, String, String)
.- Specified by:
createComponent
in classApplication
- Parameters:
componentType
- The component type for which to create and return a newUIComponent
instance- Returns:
- the UI component.
- Throws:
FacesException
- if aUIComponent
of the specified type cannot be created
-
addComponent
Description copied from class:Application
Register a new mapping of component type to the name of the corresponding
UIComponent
class. This allows subsequent calls tocreateComponent()
to serve as a factory forUIComponent
instances.- Specified by:
addComponent
in classApplication
- Parameters:
componentType
- The component type to be registeredcomponentClass
- The fully qualified class name of the correspondingUIComponent
implementation- See Also:
-
createComponent
public UIComponent createComponent(ValueExpression componentExpression, FacesContext context, String componentType) throws FacesException Description copied from class:Application
Call the
getValue()
method on the specifiedValueExpression
. If it returns aUIComponent
instance, return it as the value of this method. If it does not, instantiate a newUIComponent
instance of the specified component type, pass the new component to thesetValue()
method of the specifiedValueExpression
, and return it.Before the component instance is returned, it must be inspected for the presence of a
ListenerFor
(orListenersFor
) orResourceDependency
(orResourceDependencies
) annotation. If any of these annotations are present, the action listed inListenerFor
orResourceDependency
must be taken on the component, before it is returned from this method. This variant ofcreateComponent
must not inspect theRenderer
for the component to be returned for any of the afore mentioned annotations. Such inspection is the province ofApplication.createComponent(ValueExpression, FacesContext, String, String)
orApplication.createComponent(FacesContext, String, String)
.A default implementation is provided that throws
UnsupportedOperationException
so that users that decorateApplication
can continue to function.- Overrides:
createComponent
in classApplication
- Parameters:
componentExpression
-ValueExpression
representing a component value expression (typically specified by thecomponent
attribute of a custom tag)context
-FacesContext
for the current requestcomponentType
- Component type to create if theValueExpression
does not return a component instance- Returns:
- the UI component.
- Throws:
FacesException
- if aUIComponent
cannot be created
-
createComponent
public UIComponent createComponent(ValueExpression componentExpression, FacesContext context, String componentType, String rendererType) Description copied from class:Application
Like
Application.createComponent(ValueExpression, FacesContext, String)
except theRenderer
for the component to be returned must be inspected for the annotations mentioned inApplication.createComponent(ValueExpression, FacesContext, String)
as specified in the documentation for that method. TheRenderer
instance to inspect must be obtained by callingFacesContext.getRenderKit()
and callingRenderKit.getRenderer(java.lang.String, java.lang.String)
on the result, passing the argumentcomponentType
as the first argument and the result of callingUIComponent.getFamily()
on the newly created component as the second argument. If no suchRenderer
can be found, a message must be logged with a helpful error message. Otherwise,UIComponent.setRendererType(java.lang.String)
must be called on the newly createdUIComponent
instance, passing the argumentrendererType
as the argument.A default implementation is provided that throws
UnsupportedOperationException
so that users that decorateApplication
can continue to function.- Overrides:
createComponent
in classApplication
- Parameters:
componentExpression
-ValueExpression
representing a component value expression (typically specified by thecomponent
attribute of a custom tag)context
-FacesContext
for the current requestcomponentType
- Component type to create if theValueExpression
does not return a component instancerendererType
- The renderer-type of theRenderer
that will render this component. Anull
value must be accepted for this parameter.- Returns:
- the UI component.
-
createComponent
Description copied from class:Application
Like
Application.createComponent(String)
except theRenderer
for the component to be returned must be inspected for the annotations mentioned inApplication.createComponent(ValueExpression, FacesContext, String)
as specified in the documentation for that method. TheRenderer
instance to inspect must be obtained by callingFacesContext.getRenderKit()
and callingRenderKit.getRenderer(java.lang.String, java.lang.String)
on the result, passing the argumentcomponentType
as the first argument and the result of callingUIComponent.getFamily()
on the newly created component as the second argument. If no suchRenderer
can be found, a message must be logged with a helpful error message. Otherwise,UIComponent.setRendererType(java.lang.String)
must be called on the newly createdUIComponent
instance, passing the argumentrendererType
as the argument.A default implementation is provided that throws
.UnsupportedOperationException
so that users that decorateApplication
can continue to function- Overrides:
createComponent
in classApplication
- Parameters:
context
-FacesContext
for the current requestcomponentType
- Component type to createrendererType
- The renderer-type of theRenderer
that will render this component. Anull
value must be accepted for this parameter.- Returns:
- the UI component.
-
createComponent
public UIComponent createComponent(FacesContext context, Resource componentResource) throws FacesException Description copied from class:Application
Instantiate and return a new
UIComponent
instance from the argumentResource
. An algorithm semantically equivalent to the following must be followed to instantiate theUIComponent
to return.-
Obtain a reference to the
ViewDeclarationLanguage
for thisApplication
instance by callingViewHandler.getViewDeclarationLanguage(jakarta.faces.context.FacesContext, java.lang.String)
, passing theviewId
found by callingUIViewRoot.getViewId()
on theUIViewRoot
in the argumentFacesContext
. -
Obtain a reference to the composite component metadata for this composite component by calling
ViewDeclarationLanguage.getComponentMetadata(jakarta.faces.context.FacesContext, jakarta.faces.application.Resource)
, passing thefacesContext
andcomponentResource
arguments to this method. This version of the Jakarta Faces Specification uses JavaBeans as the API to the component metadata. -
Determine if the component author declared a
componentType
for this component instance by obtaining theBeanDescriptor
from the component metadata and calling itsgetValue()
method, passingUIComponent.COMPOSITE_COMPONENT_TYPE_KEY
as the argument. If non-null
, the result must be aValueExpression
whose value is thecomponent-type
of theUIComponent
to be created for thisResource
component. Call through toApplication.createComponent(java.lang.String)
to create the component. -
Otherwise, determine if a script based component for this
Resource
can be found by callingViewDeclarationLanguage.getScriptComponentResource(jakarta.faces.context.FacesContext, jakarta.faces.application.Resource)
. If the result is non-null
, and is a script written in a language satisfying the content typetext/javascript
, create aUIComponent
instance from the script resource. -
Otherwise, let library-name be the return from calling
Resource.getLibraryName()
on the argumentcomponentResource
and resource-name be the return from callingResource.getResourceName()
on the argumentcomponentResource
. Create a fully qualified Java class name by removing any file extension from resource-name and let fqcn belibrary-name + "." + resource-name
. If a class with the name of fqcn cannot be found, take no action and continue to the next step. If any ofInstantiationException
,IllegalAccessException
, orClassCastException
are thrown, wrap the exception in aFacesException
and re-throw it. If any other exception is thrown, log the exception and continue to the next step. -
If none of the previous steps have yielded a
UIComponent
instance, callApplication.createComponent(java.lang.String)
passing "jakarta.faces.NamingContainer
" as the argument. -
Call
UIComponent.setRendererType(java.lang.String)
on theUIComponent
instance, passing "jakarta.faces.Composite
" as the argument. -
Store the argument
Resource
in the attributesMap
of theUIComponent
under the key,Resource.COMPONENT_RESOURCE_KEY
. -
Store composite component metadata in the attributes
Map
of theUIComponent
under the key,UIComponent.BEANINFO_KEY
.
Before the component instance is returned, it must be inspected for the presence of a
ListenerFor
annotation. If this annotation is present, the action listed inListenerFor
must be taken on the component, before it is returned from this method.A default implementation is provided that throws
UnsupportedOperationException
so that users that decorateApplication
can continue to function.- Overrides:
createComponent
in classApplication
- Parameters:
context
-FacesContext
for the current requestcomponentResource
- AResource
that points to a source file that provides an implementation of a component.- Returns:
- the UI component.
- Throws:
FacesException
- if aUIComponent
from theResource
cannot be created
-
-
getComponentTypes
Description copied from class:Application
Return an
Iterator
over the set of currently defined component types for thisApplication
.- Specified by:
getComponentTypes
in classApplication
- Returns:
- an iterator with component types.
- See Also:
-
addConverter
Description copied from class:Application
Register a new mapping of converter id to the name of the corresponding
Converter
class. This allows subsequent calls tocreateConverter()
to serve as a factory forConverter
instances.- Specified by:
addConverter
in classApplication
- Parameters:
converterId
- The converter id to be registeredconverterClass
- The fully qualified class name of the correspondingConverter
implementation- See Also:
-
addConverter
Description copied from class:Application
Register a new converter class that is capable of performing conversions for the specified target class.
- Specified by:
addConverter
in classApplication
- Parameters:
targetClass
- The class for which this converter is registeredconverterClass
- The fully qualified class name of the correspondingConverter
implementation- See Also:
-
createConverter
Description copied from class:Application
Instantiate and return a new
Converter
instance of the class specified by a previous call toaddConverter()
for the specified converter id.If the
toLowerCase()
of theString
represenation of the value of the "jakarta.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE
" application configuration parameter is "true
" (without the quotes) and theConverter
instance to be returned is an instance ofDateTimeConverter
,DateTimeConverter.setTimeZone(java.util.TimeZone)
must be called, passing the return fromTimeZone.getDefault()
.The argument
converter
must be inspected for the presence of theResourceDependency
annotation. If theResourceDependency
annotation is present, the action described inResourceDependency
must be taken. If theResourceDependency
annotation is not present, the argumentconverter
must be inspected for the presence of theResourceDependencies
annotation. If theResourceDependencies
annotation is present, the action described inResourceDependencies
must be taken.- Specified by:
createConverter
in classApplication
- Parameters:
converterId
- The converter id for which to create and return a newConverter
instance- Returns:
- the converter.
- See Also:
-
createConverter
Description copied from class:Application
Instantiate and return a new
Converter
instance of the class that has registered itself as capable of performing conversions for objects of the specified type. If no suchConverter
class can be identified, returnnull
.To locate an appropriate
Converter
class, the following algorithm is performed, stopping as soon as an appropriateConverter
class is found:- Locate a
Converter
registered for the target class itself. - Locate a
Converter
registered for interfaces that are implemented by the target class (directly or indirectly). - Locate a
Converter
registered for the superclass (if any) of the target class, recursively working up the inheritance hierarchy.
If the
Converter
has a single argument constructor that accepts aClass
, instantiate theConverter
using that constructor, passing the argumenttargetClass
as the sole argument. Otherwise, simply use the zero-argument constructor.If the
toLowerCase()
of theString
represenation of the value of the "jakarta.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE
" application configuration parameter is "true
" (without the quotes) and theConverter
instance to be returned is an instance ofDateTimeConverter
,DateTimeConverter.setTimeZone(java.util.TimeZone)
must be called, passing the return fromTimeZone.getDefault()
.- Specified by:
createConverter
in classApplication
- Parameters:
targetClass
- Target class for which to return aConverter
- Returns:
- the converter.
- See Also:
- Locate a
-
getConverterIds
Description copied from class:Application
Return an
Iterator
over the set of currently registered converter ids for thisApplication
.- Specified by:
getConverterIds
in classApplication
- Returns:
- an iterator with converter ids.
- See Also:
-
getConverterTypes
Description copied from class:Application
Return an
Iterator
over the set ofClass
instances for whichConverter
classes have been explicitly registered.- Specified by:
getConverterTypes
in classApplication
- Returns:
- an iterator with converter types.
- See Also:
-
addValidator
Description copied from class:Application
Register a new mapping of validator id to the name of the corresponding
Validator
class. This allows subsequent calls tocreateValidator()
to serve as a factory forValidator
instances.- Specified by:
addValidator
in classApplication
- Parameters:
validatorId
- The validator id to be registeredvalidatorClass
- The fully qualified class name of the correspondingValidator
implementation- See Also:
-
createValidator
Description copied from class:Application
Instantiate and return a new
Validator
instance of the class specified by a previous call toaddValidator()
for the specified validator id.The argument
validator
must be inspected for the presence of theResourceDependency
annotation. If theResourceDependency
annotation is present, the action described inResourceDependency
must be taken. If theResourceDependency
annotation is not present, the argumentvalidator
must be inspected for the presence of theResourceDependencies
annotation. If theResourceDependencies
annotation is present, the action described inResourceDependencies
must be taken.- Specified by:
createValidator
in classApplication
- Parameters:
validatorId
- The validator id for which to create and return a newValidator
instance- Returns:
- the validator.
- Throws:
FacesException
- if aValidator
of the specified id cannot be created- See Also:
-
getValidatorIds
Description copied from class:Application
Return an
Iterator
over the set of currently registered validator ids for thisApplication
.- Specified by:
getValidatorIds
in classApplication
- Returns:
- an iterator of validator ids.
- See Also:
-
addDefaultValidatorId
Description copied from class:Application
Register a validator by its id that is applied to all
UIInput
components in a view. The validator to most often serve this role is theBeanValidator
. The usage contract for this method assumes that the validator has been registered using the normal “by-id” registration mechanism.An implementation is provided that takes no action so that users that decorate the
Application
continue to work.- Overrides:
addDefaultValidatorId
in classApplication
- Parameters:
validatorId
- the validator id.- See Also:
-
getDefaultValidatorInfo
Description copied from class:Application
Return an immutable
Map
over the set of currently registered default validator IDs and their class name for thisApplication
.An implementation is provided that returns
Collections.emptyMap
so that users that decorate theApplication
continue to work.- Overrides:
getDefaultValidatorInfo
in classApplication
- Returns:
- a map of default validator information.
- See Also:
-
getProjectStage
Description copied from class:Application
Return the project stage for the currently running application instance. The default value is
ProjectStage.Production
The implementation of this method must perform the following algorithm or an equivalent with the same end result to determine the value to return.
If the value has already been determined by a previous call to this method, simply return that value.
Look for a
JNDI
environment entry under the key given by the value ofProjectStage.PROJECT_STAGE_JNDI_NAME
(return type ofjava.lang.String
). If found, continue with the algorithm below, otherwise, look for an entry in theinitParamMap
of theExternalContext
from the currentFacesContext
with the key given by the value ofProjectStage.PROJECT_STAGE_PARAM_NAME
If a value is found, see if an enum constant can be obtained by calling
ProjectStage.valueOf()
, passing the value from theinitParamMap
. If this succeeds without exception, save the value and return it.If not found, or any of the previous attempts to discover the enum constant value have failed, log a descriptive error message, assign the value as
ProjectStage.Production
and return it.A default implementation is provided that throws
.UnsupportedOperationException
so that users that decorateApplication
can continue to function- Overrides:
getProjectStage
in classApplication
- Returns:
- the project stage.
- See Also:
-
getSearchExpressionHandler
Description copied from class:Application
Return the thread-safe singleton
SearchExpressionHandler
for this application.- Overrides:
getSearchExpressionHandler
in classApplication
- Returns:
- the
SearchExpressionHandler
.
-
setSearchExpressionHandler
Description copied from class:Application
Set the
SearchExpressionHandler
instance used by the application.- Overrides:
setSearchExpressionHandler
in classApplication
- Parameters:
searchExpressionHandler
- theSearchExpressionHandler
.
-
addSearchKeywordResolver
Description copied from class:Application
Cause the argument
resolver
to be added to the head of the resolver chain.It is not possible to remove a
SearchKeywordResolver
registered with this method, once it has been registered.The default implementation throws
UnsupportedOperationException
and is provided for the sole purpose of not breaking existing applications that extendApplication
.- Overrides:
addSearchKeywordResolver
in classApplication
- Parameters:
resolver
- the SearchKeywordResolver to add.
-
getSearchKeywordResolver
Description copied from class:Application
Return the singleton
SearchKeywordResolver
instance to be used for all search keyword resolution. This is actually an instance of a composite SearchKeywordResolver that must contain the followingSearchKeywordResolver
instances in the following order:-
SearchKeywordResolver
instances declared using the <search-keyword-resolver> element in the application configuration resources. -
Any
SearchKeywordResolver
instances added by calls toApplication.addSearchKeywordResolver(jakarta.faces.component.search.SearchKeywordResolver)
. -
The
SearchKeywordResolver
implementations for@all
,@child(n)
,@form
,@id(...)
,@namingcontainer
,@next
,@none
,@parent
,@previous
,@root
and@this
.
The default implementation throws
UnsupportedOperationException
and is provided for the sole purpose of not breaking existing applications that extendApplication
.- Overrides:
getSearchKeywordResolver
in classApplication
- Returns:
- the
SearchKeywordResolver
.
-
-