javax.faces.render
Class Renderer

java.lang.Object
  extended byjavax.faces.render.Renderer

public abstract class Renderer
extends java.lang.Object

A Renderer converts the internal representation of UIComponents into the output stream (or writer) associated with the response we are creating for a particular request. Each Renderer knows how to render one or more UIComponent types (or classes), and advertises a set of render-dependent attributes that it recognizes for each supported UIComponent.

Families of Renderers are packaged as a RenderKit, and together support the rendering of all of the UIComponents in the component tree associated with a FacesContext. Within the set of Renderers for a particular RenderKit, each must be uniquely identified by the rendererType property.

Individual Renderer instances will be instantiated as requested during the rendering process, and will remain in existence for the remainder of the lifetime of a web application. Because each instance may be invoked from more than one request processing thread simultaneously, they MUST be programmed in a thread-safe manner.


Constructor Summary
Renderer()
           
 
Method Summary
abstract  void decode(FacesContext context, UIComponent component)
          Decode the current state of the specified UIComponent from the request contained in the specified FacesContext, and attempt to convert this state information into an object of the type required for this component (optionally using the registered Converter for this component, if there is one).
abstract  void encodeBegin(FacesContext context, UIComponent component)
          Render the beginning specified UIComponent to the output stream or writer associated with the response we are creating.
abstract  void encodeChildren(FacesContext context, UIComponent component)
          Render the child components of this UIComponent, following the rules described for encodeBegin() to acquire the appropriate value to be rendered.
abstract  void encodeEnd(FacesContext context, UIComponent component)
          Render the ending of the current state of the specified UIComponent, following the rules described for encodeBegin() to acquire the appropriate value to be rendered.
abstract  java.lang.String getClientId(FacesContext context, UIComponent component)
          Generate and return a new client-side identifier for the specified component.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Renderer

public Renderer()
Method Detail

decode

public abstract void decode(FacesContext context,
                            UIComponent component)
                     throws java.io.IOException

Decode the current state of the specified UIComponent from the request contained in the specified FacesContext, and attempt to convert this state information into an object of the type required for this component (optionally using the registered Converter for this component, if there is one).

If conversion is successful:

If conversion is not successful:

During decoding, events may be enqueued for later processing (by event listeners that have registered an interest), by calling addFacesEvent() on the associated FacesContext.

Parameters:
context - FacesContext for the request we are processing
component - UIComponent to be decoded.
Throws:
java.io.IOException - if an input/output error occurs while decoding
java.lang.NullPointerException - if context or component is null

encodeBegin

public abstract void encodeBegin(FacesContext context,
                                 UIComponent component)
                          throws java.io.IOException

Render the beginning specified UIComponent to the output stream or writer associated with the response we are creating. If the conversion attempted in a previous call to decode for this component failed, the state information saved during execution of decode() should be utilized to reproduce the incorrect input. If the conversion was successful, or if there was no previous call to decode(), the value to be displayed should be acquired by calling component.currentValue(), and rendering the value as appropriate.

Parameters:
context - FacesContext for the request we are processing
component - UIComponent to be rendered
Throws:
java.io.IOException - if an input/output error occurs while rendering
java.lang.NullPointerException - if context or component is null

encodeChildren

public abstract void encodeChildren(FacesContext context,
                                    UIComponent component)
                             throws java.io.IOException

Render the child components of this UIComponent, following the rules described for encodeBegin() to acquire the appropriate value to be rendered. This method will only be called if the rendersChildren property of this component is true.

Parameters:
context - FacesContext for the response we are creating
component - UIComponent whose children are to be rendered
Throws:
java.io.IOException - if an input/output error occurs while rendering
java.lang.NullPointerException - if context or component is null

encodeEnd

public abstract void encodeEnd(FacesContext context,
                               UIComponent component)
                        throws java.io.IOException

Render the ending of the current state of the specified UIComponent, following the rules described for encodeBegin() to acquire the appropriate value to be rendered.

Parameters:
context - FacesContext for the response we are creating
component - UIComponent to be rendered
Throws:
java.io.IOException - if an input/output error occurs while rendering
java.lang.NullPointerException - if context or component is null

getClientId

public abstract java.lang.String getClientId(FacesContext context,
                                             UIComponent component)

Generate and return a new client-side identifier for the specified component.

Parameters:
context - FacesContext for the current request
component - UIComponent whose identifier is to be returned
Throws:
java.lang.NullPointerException - if context or component is null