View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package javax.faces.render;
20  
21  import javax.faces.FacesWrapper;
22  import javax.faces.context.ResponseStream;
23  import javax.faces.context.ResponseWriter;
24  import java.io.OutputStream;
25  import java.io.Writer;
26  import java.util.Iterator;
27  
28  /**
29   * <p>
30   *   Provides a simple implementation of RenderKit that can be subclassed by developers wishing 
31   *   to provide specialized behavior to an existing RenderKit instance. The default implementation
32   *   of all methods is to call through to the wrapped RenderKit.
33   * </p>
34   * <p>
35   *   Usage: extend this class and override getWrapped() to return the  wrapped instance.
36   * </p>
37   *
38   * @since 2.0
39   */
40  public abstract class RenderKitWrapper extends RenderKit implements FacesWrapper<RenderKit>
41  {
42      @Override
43      public void addClientBehaviorRenderer(String type, ClientBehaviorRenderer renderer)
44      {
45          getWrapped().addClientBehaviorRenderer(type,renderer);
46      }
47      
48      /** {@inheritDoc} */
49      @Override
50      public void addRenderer(String family, String rendererType, Renderer renderer)
51      {
52          getWrapped().addRenderer(family, rendererType, renderer);
53      }
54  
55      /** {@inheritDoc} */
56      @Override
57      public ResponseStream createResponseStream(OutputStream out)
58      {
59          return getWrapped().createResponseStream(out);
60      }
61  
62      /** {@inheritDoc} */
63      @Override
64      public ResponseWriter createResponseWriter(Writer writer, String contentTypeList, String characterEncoding)
65      {
66          return getWrapped().createResponseWriter(writer, contentTypeList, characterEncoding);
67      }
68  
69      @Override
70      public ClientBehaviorRenderer getClientBehaviorRenderer(String type)
71      {
72          return getWrapped().getClientBehaviorRenderer(type);
73      }
74      
75      @Override
76      public Iterator<String> getClientBehaviorRendererTypes()
77      {
78          return getWrapped().getClientBehaviorRendererTypes();
79      }
80      
81      /** {@inheritDoc} */
82      @Override
83      public Renderer getRenderer(String family, String rendererType)
84      {
85          return getWrapped().getRenderer(family, rendererType);
86      }
87  
88      /** {@inheritDoc} */
89      @Override
90      public ResponseStateManager getResponseStateManager()
91      {
92          return getWrapped().getResponseStateManager();
93      }
94  
95      /** {@inheritDoc} */
96      public abstract RenderKit getWrapped();
97  
98      /** {@inheritDoc} */
99      @Override
100     public Iterator<String> getComponentFamilies()
101     {
102         return getWrapped().getComponentFamilies();
103     }
104 
105     /** {@inheritDoc} */
106     @Override
107     public Iterator<String> getRendererTypes(String componentFamily)
108     {
109         return getWrapped().getRendererTypes(componentFamily);
110     }
111 }