Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package javax.faces.render;
 
 
 import java.io.Writer;
 import java.util.Set;


RenderKit represents a collection of Renderer instances that, together, know how to render JavaServer Faces javax.faces.component.UIComponent instances for a specific client. Typically, RenderKits 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 javax.faces.application.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.

 
 public abstract class RenderKit {


    

Register the specified Renderer instance, associated with the specified component family and rendererType, to the set of Renderers 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:
java.lang.NullPointerException if family or rendererType or renderer is null
 
     public abstract void addRenderer(String familyString rendererType,
                                      Renderer renderer);


    

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:
java.lang.NullPointerException if family or rendererType is null
    public abstract Renderer getRenderer(String familyString rendererType);


    

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

    public abstract ResponseStateManager getResponseStateManager();


    

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

Implementors are advised to consult the getCharacterEncoding() method of class javax.servlet.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 javax.faces.context.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 javax.faces.context.ResponseWriter.
Throws:
java.lang.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.
    public abstract ResponseWriter createResponseWriter(Writer writer,
							String contentTypeList,
							String characterEncoding);


    

Use the provided OutputStream to create a new javax.faces.context.ResponseStream instance.

 
    public abstract ResponseStream createResponseStream(OutputStream out);


    

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
    public Iterator<StringgetComponentFamilies() {
        Set<Stringempty = Collections.emptySet();
        return empty.iterator();
    }
    
    

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
    public Iterator<StringgetRendererTypes(String componentFamily) {
        Set<Stringempty = Collections.emptySet();
        return empty.iterator();
    }
    
    

Register the specified ClientBehaviorRenderer instance, associated with the specified component type, to the set of ClientBehaviorRenderers 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:
java.lang.NullPointerException if type or renderer is null
Since:
2.0
    public void addClientBehaviorRenderer(String typeClientBehaviorRenderer renderer) {
        throw new UnsupportedOperationException("The default implementation must override this method");
    }
    
    

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:
java.lang.NullPointerException if type is null
Since:
2.0
        throw new UnsupportedOperationException("The default implementation must override this method");
    }
    
    

Return an Iterator over the ClientBehaviorRenderer types.

Since:
2.0
        throw new UnsupportedOperationException("The default implementation must override this method");		
    }
New to GrepCode? Check out our FAQ X