Class RenderKitFactory

  • All Implemented Interfaces:
    FacesWrapper<RenderKitFactory>

    public abstract class RenderKitFactory
    extends Object
    implements FacesWrapper<RenderKitFactory>

    RenderKitFactory is a factory object that registers and returns RenderKit instances. Implementations of Jakarta Faces must provide at least a default implementation of RenderKit. Advanced implementations (or external third party libraries) may provide additional RenderKit implementations (keyed by render kit identifiers) for performing different types of rendering for the same components.

    There must be one RenderKitFactory instance per web application that is utilizing Jakarta Faces. This instance can be acquired, in a portable manner, by calling:

     RenderKitFactory factory = (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
     

    Usage: extend this class and push the implementation being wrapped to the constructor and use getWrapped() to access the instance being wrapped.

    • Field Detail

      • HTML_BASIC_RENDER_KIT

        public static final String HTML_BASIC_RENDER_KIT

        The render kit identifier of the default RenderKit instance for this Jakarta Faces implementation.

        See Also:
        Constant Field Values
    • Constructor Detail

      • RenderKitFactory

        @Deprecated
        public RenderKitFactory()
        Deprecated.
        Use the other constructor taking the implementation being wrapped.
      • RenderKitFactory

        public RenderKitFactory​(RenderKitFactory wrapped)

        If this factory has been decorated, the implementation doing the decorating should push the implementation being wrapped to this constructor. The getWrapped() will then return the implementation being wrapped.

        Parameters:
        wrapped - The implementation being wrapped.
    • Method Detail

      • getWrapped

        public RenderKitFactory getWrapped()

        If this factory has been decorated, the implementation doing the decorating may override this method to provide access to the implementation being wrapped.

        Specified by:
        getWrapped in interface FacesWrapper<RenderKitFactory>
        Returns:
        the wrapped instance.
        Since:
        2.0
      • addRenderKit

        public abstract void addRenderKit​(String renderKitId,
                                          RenderKit renderKit)

        Register the specified RenderKit instance, associated with the specified renderKitId, to be supported by this RenderKitFactory, replacing any previously registered RenderKit for this identifier.

        Parameters:
        renderKitId - Identifier of the RenderKit to register
        renderKit - RenderKit instance that we are registering
        Throws:
        NullPointerException - if renderKitId or renderKit is null
      • getRenderKit

        public abstract RenderKit getRenderKit​(FacesContext context,
                                               String renderKitId)

        Return a RenderKit instance for the specified render kit identifier, possibly customized based on dynamic characteristics of the specified FacesContext, if non-null. If there is no registered RenderKit for the specified identifier, return null. The set of available render kit identifiers is available via the getRenderKitIds() method.

        Parameters:
        context - FacesContext for the request currently being processed, or null if none is available.
        renderKitId - Render kit identifier of the requested RenderKit instance
        Returns:
        a RenderKit instance
        Throws:
        IllegalArgumentException - if no RenderKit instance can be returned for the specified identifier
        NullPointerException - if renderKitId is null
      • getRenderKitIds

        public abstract Iterator<String> getRenderKitIds()

        Return an Iterator over the set of render kit identifiers registered with this factory. This set must include the value specified by RenderKitFactory.HTML_BASIC_RENDER_KIT.

        Returns:
        an Iterator over the set of render kit identifiers