code: static UIComponent findComponent(UIComponent findBase, String id, final char separatorChar)
      {
          if (!(findBase instanceof NamingContainer) && idsAreEqual(id, findBase))
          {
              return findBase;
          }
  
          int facetCount = findBase.getFacetCount();
          if (facetCount > 0)
          {
              for (UIComponent facet : findBase.getFacets().values())
              {
                  if (!(facet instanceof NamingContainer))
                  {
                      UIComponent find = findComponent(facet, id, separatorChar);
                      if (find != null)
                      {
                          return find;
                      }
                  }
                  else if (idsAreEqual(id, facet))
                  {
                      return facet;
                  }
              }
          }
          
          for (int i = 0, childCount = findBase.getChildCount(); i < childCount; i++)
          {
              UIComponent child = findBase.getChildren().get(i);
              if (!(child instanceof NamingContainer))
              {
                  UIComponent find = findComponent(child, id, separatorChar);
                  if (find != null)
                  {
                      return find;
                  }
              }
              else if (idsAreEqual(id, child))
              {
                  return child;
              }
          }
  
          if (findBase instanceof NamingContainer && idsAreEqual(id, findBase))
          {
              return findBase;
          }
  
          return null;
      }
docs: Find the component with the specified id starting from the specified component.
  <p>
  Param id must not contain any NamingContainer.SEPARATOR_CHAR characters (ie ":"). This method explicitly does
  <i>not</i> search into any child naming container components; this is expected to be handled by the caller of
  this method.
  <p>
  For an implementation of findComponent which does descend into child naming components, see
  org.apache.myfaces.custom.util.ComponentUtils.
  
  @return findBase, a descendant of findBase, or null.