Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.faces.render
Class RenderKit

    java.lang.Object
      javax.faces.render.RenderKit

Direct Known Subclasses:
  RenderKitWrapper

    public abstract class RenderKit

extends Object

RenderKit represents a collection of `Renderer` instances that, together, know how to render JavaServer Faces `UIComponent` instances for a specific client. Typically, `RenderKit`s are specialized for some combination of client device type, markup language, and/or user `Locale`. A `RenderKit` also acts as a Factory for associated `Renderer` instances, which perform the actual rendering process for each component.

A typical JavaServer Faces implementation will configure one or more `RenderKit` instances at web application startup. They are made available through calls to the `getRenderKit()` methods of `RenderKitFactory`. Because `RenderKit` instances are shared, they must be implemented in a thread-safe manner. Due to limitations in the current specification having multiple `RenderKit` instances at play in the same application requires a custom `ViewHandler` instance that is aware of how to deal with this case. This limitation will be lifted in a future version of the spec.

The `RenderKit` instance must also vend a `ResponseStateManager` instance, which is used in the process of saving and restoring tree structure and state.

Constructor Summary
`RenderKit()`

Method Summary
`void` | `addClientBehaviorRenderer(String type, ClientBehaviorRenderer renderer)` Register the specified `ClientBehaviorRenderer` instance, associated with the specified component `type`, to the set of `ClientBehaviorRenderer`s registered with this `RenderKit`, replacing any previously registered `ClientBehaviorRenderer` for this type.
`abstract void` | `addRenderer(String family, String rendererType, Renderer renderer)` Register the specified `Renderer` instance, associated with the specified component `family` and `rendererType`, to the set of `Renderer`s registered with this `RenderKit`, replacing any previously registered `Renderer` for this combination of identifiers.
`abstract ResponseStream` | `createResponseStream(OutputStream out)` Use the provided `OutputStream` to create a new `ResponseStream` instance.
`abstract ResponseWriter` | `createResponseWriter(Writer writer, String contentTypeList, String characterEncoding)` Use the provided `Writer` to create a new `ResponseWriter` instance for the specified (optional) content type, and character encoding.
`ClientBehaviorRenderer` | `getClientBehaviorRenderer(String type)` Return the `ClientBehaviorRenderer` instance most recently registered for the specified `type`, if any; otherwise, return `null`.
`Iterator<String>` | `getClientBehaviorRendererTypes()` Return an `Iterator` over the `ClientBehaviorRenderer` types.
`Iterator<String>` | `getComponentFamilies()` Return an `Iterator` over the component-family entries supported by this `RenderKit` instance.
`abstract Renderer` | `getRenderer(String family, String rendererType)` Return the `Renderer` instance most recently registered for the specified component `family` and `rendererType`, if any; otherwise, return `null`.
`Iterator<String>` | `getRendererTypes(String componentFamily)` Return an `Iterator` over the renderer-type entries for the given component-family.
`abstract ResponseStateManager` | `getResponseStateManager()` Return an instance of `ResponseStateManager` to handle rendering technology specific state management decisions.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RenderKit

    public RenderKit()

Method Detail

### addRenderer

    public abstract void addRenderer(String family,
                                     String rendererType,
                                     Renderer renderer)

  Register the specified `Renderer` instance, associated with the specified component `family` and `rendererType`, to the set of `Renderer`s registered with this `RenderKit`, replacing any previously registered `Renderer` for this combination of identifiers.

  Parameters:
    `family` - Component family of the `Renderer` to register
    `rendererType` - Renderer type of the `Renderer` to register
    `renderer` - `Renderer` instance we are registering
  Throws:
    `NullPointerException` - if `family` or `rendererType` or `renderer` is null

### getRenderer

    public abstract Renderer getRenderer(String family,
                                         String rendererType)

  Return the `Renderer` instance most recently registered for the specified component `family` and `rendererType`, if any; otherwise, return `null`.

  Parameters:
    `family` - Component family of the requested `Renderer` instance
    `rendererType` - Renderer type of the requested `Renderer` instance
  Throws:
    `NullPointerException` - if `family` or `rendererType` is `null`

### getResponseStateManager

    public abstract ResponseStateManager getResponseStateManager()

  Return an instance of `ResponseStateManager` to handle rendering technology specific state management decisions.

### createResponseWriter

    public abstract ResponseWriter createResponseWriter(Writer writer,
                                                        String contentTypeList,
                                                        String characterEncoding)

  Use the provided `Writer` to create a new `ResponseWriter` instance for the specified (optional) content type, and character encoding.

  Implementors are advised to consult the `getCharacterEncoding()` method of class `ServletResponse` to get the required value for the characterEncoding for this method. Since the `Writer` for this response will already have been obtained (due to it ultimately being passed to this method), we know that the character encoding cannot change during the rendering of the response.

  Parameters:
    `writer` - the Writer around which this `ResponseWriter` must be built.
    `contentTypeList` - an "Accept header style" list of content types for this response, or `null` if the RenderKit should choose the best fit. As of the current version, the values accepted by the Standard render-kit for this parameter include any valid "Accept header style" String that includes the String `text/html`, `application/xhtml+xml`, `application/xml` or `text/xml`. This may change in a future version. The RenderKit must support a value for this argument that comes straight from the `Accept` HTTP header, and therefore requires parsing according to the specification of the `Accept` header. Please see Section 14.1 of RFC 2616 for the specification of the `Accept` header.
    `characterEncoding` - such as "ISO-8859-1" for this ResponseWriter, or `null` if the `RenderKit` should choose the best fit. Please see the IANA for a list of character encodings.
  Returns:
    a new `ResponseWriter`.
  Throws:
    `IllegalArgumentException` - if no matching content type can be found in `contentTypeList`, no appropriate content type can be found with the implementation dependent best fit algorithm, or no matching character encoding can be found for the argument `characterEncoding`.

### createResponseStream

    public abstract ResponseStream createResponseStream(OutputStream out)

  Use the provided `OutputStream` to create a new `ResponseStream` instance.

### getComponentFamilies

    public Iterator<String> getComponentFamilies()

  Return an `Iterator` over the component-family entries supported by this `RenderKit` instance.

  The default implementation of this method returns an empty `Iterator`

  Since:
    2.0

### getRendererTypes

    public Iterator<String> getRendererTypes(String componentFamily)

  Return an `Iterator` over the renderer-type entries for the given component-family.

  If the specified `componentFamily` is not known to this `RenderKit` implementation, return an empty `Iterator`

  The default implementation of this method returns an empty `Iterator`

  Parameters:
    `componentFamily` - one of the members of the `Iterator` returned by `getComponentFamilies()`.
  Since:
    2.0

### addClientBehaviorRenderer

    public void addClientBehaviorRenderer(String type,
                                          ClientBehaviorRenderer renderer)

  Register the specified `ClientBehaviorRenderer` instance, associated with the specified component `type`, to the set of `ClientBehaviorRenderer`s registered with this `RenderKit`, replacing any previously registered `ClientBehaviorRenderer` for this type.

  Parameters:
    `type` - type of the `ClientBehaviorRenderer` to register
    `renderer` - `ClientBehaviorRenderer` instance we are registering
  Throws:
    `NullPointerException` - if `type` or `renderer` is null
  Since:
    2.0

### getClientBehaviorRenderer

    public ClientBehaviorRenderer getClientBehaviorRenderer(String type)

  Return the `ClientBehaviorRenderer` instance most recently registered for the specified `type`, if any; otherwise, return `null`.

  Parameters:
    `type` - type of the requested `ClientBehaviorRenderer` instance
  Throws:
    `NullPointerException` - if `type` is `null`
  Since:
    2.0

### getClientBehaviorRendererTypes

    public Iterator<String> getClientBehaviorRendererTypes()

  Return an `Iterator` over the `ClientBehaviorRenderer` types.

  Since:
    2.0

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2009 Sun Microsystems, Inc. All Rights Reserved.