code: protected void setProperties(UIComponent component) {
          // The "id" property is explicitly set when components are created
          // so it does not need to be set here
          if (rendered != null) {
              if (rendered.isLiteralText()) {
                  try {
                      component.setRendered(Boolean.valueOf(rendered.getExpressionString())
                              .booleanValue());
                  } catch (ELException e) {
                      throw new FacesException(e);
                  }
              } else {
                  component.setValueExpression("rendered", rendered);
              }
          }
          if (getRendererType() != null) {
              component.setRendererType(getRendererType());
          }
  
      }
docs: <p>Override properties and attributes of the specified component,
  if the corresponding properties of this tag handler instance were
  explicitly set.  This method must be called <strong>ONLY</strong>
  if the specified {@link UIComponent} was in fact created during
  the execution of this tag handler instance, and this call will occur
  <strong>BEFORE</strong> the {@link UIComponent} is added to
  the view.</p>
  
  <p>Tag subclasses that want to support additional set properties
  must ensure that the base class <code>setProperties()</code>
  method is still called.  A typical implementation that supports
  extra properties <code>foo</code> and <code>bar</code> would look
  something like this:</p>
  <pre>
  protected void setProperties(UIComponent component) {
  super.setProperties(component);
  if (foo != null) {
  component.setAttribute("foo", foo);
  }
  if (bar != null) {
  component.setAttribute("bar", bar);
  }
  }
  </pre>
  
  <p>The default implementation overrides the following properties:</p>
  <ul>
  <li><code>rendered</code> - Set if a value for the
  <code>rendered</code> property is specified for
  this tag handler instance.</li>
  <li><code>rendererType</code> - Set if the <code>getRendererType()</code>
  method returns a non-null value.</li>
  </ul>
  
  @param component {@link UIComponent} whose properties are to be
  overridden