@Retention(value=RUNTIME)
 @Target(value=TYPE)
 @Inherited
public @interface FacesRenderer
The presence of this annotation on a
 class automatically registers the class with the runtime as a Renderer.  The value of the renderKitId() attribute is taken
 to be the render-kit-id to which an instance of this
 Renderer is to be added.  There must be a public
 zero-argument constructor on any class where this annotation appears.
 The implementation must indicate a fatal error if such a constructor
 does not exist and the application must not be placed in service.
 Within that RenderKit, The value of the rendererType()
 attribute is taken to be the renderer-type, and the value of
 the componentFamily() attribute is to be taken as the
 component-family.  The implementation must guarantee that
 for each class annotated with FacesRenderer, found with
 the algorithm in section JSF.11.5,
 the following actions are taken.
Obtain a reference to the RenderKitFactory for
          this application.
See if a RenderKit exists for
          render-kit-id.  If so, let that instance be
          renderKit for discussion.  If not, the implementation
          must indicate a fatal error if such a RenderKit
          does not exist and the application must not be placed in
          service.
Create an instance of this class using the public zero-argument constructor.
Call RenderKit.addRenderer(java.lang.String, java.lang.String, javax.faces.render.Renderer) on
          renderKit, passing component-family as the
          first argument, renderer-type as the second, and the
          newly instantiated RenderKit instance as the
          third argument.
| Modifier and Type | Required Element and Description | 
|---|---|
java.lang.String | 
componentFamily
The value of this annotation
 attribute is taken to be the component-family which, in
 combination with   | 
java.lang.String | 
rendererType
The value of this annotation
 attribute is taken to be the renderer-type which, in
 combination with   | 
| Modifier and Type | Optional Element and Description | 
|---|---|
java.lang.String | 
renderKitId
The value of this annotation
 attribute is taken to be the render-kit-id in which an
 instance of this class of   | 
public abstract java.lang.String rendererType
The value of this annotation
 attribute is taken to be the renderer-type which, in
 combination with componentFamily() can be used to obtain a
 reference to an instance of this Renderer by calling
 RenderKit.getRenderer(java.lang.String,
 java.lang.String).
public abstract java.lang.String componentFamily
The value of this annotation
 attribute is taken to be the component-family which, in
 combination with rendererType() can be used to obtain a
 reference to an instance of this Renderer by calling
 RenderKit.getRenderer(java.lang.String,
 java.lang.String).