Class RenderKitFactory

java.lang.Object
jakarta.faces.render.RenderKitFactory
All Implemented Interfaces:
FacesWrapper<RenderKitFactory>
Direct Known Subclasses:
RenderKitFactoryImpl

public abstract class RenderKitFactory
extends Object
implements FacesWrapper<RenderKitFactory>

RenderKitFactory is a factory object that registers and returns RenderKit instances. Implementations of Jakarta Server 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 Server 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 Details

  • Constructor Details

    • 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 Details

    • 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