code: public void execute(TransformerImpl transformer) throws TransformerException
    {
  
      transformer.pushCurrentTemplateRuleIsNull(false);
  
      boolean pushMode = false;
  
      try
      {
        // %REVIEW% Do we need this check??
        //      if (null != sourceNode)
        //      {
        // boolean needToTurnOffInfiniteLoopCheck = false;
        QName mode = transformer.getMode();
  
        if (!m_isDefaultTemplate)
        {
          if (((null == mode) && (null != m_mode))
                  || ((null != mode) &&!mode.equals(m_mode)))
          {
            pushMode = true;
  
            transformer.pushMode(m_mode);
          }
        }
  
        transformSelectedNodes(transformer);
      }
      finally
      {
        if (pushMode)
          transformer.popMode();
  
        transformer.popCurrentTemplateRuleIsNull();
      }
    }
docs: Apply the context node to the matching templates.
  @see <a href="http://www.w3.org/TR/xslt#section-Applying-Template-Rules">section-Applying-Template-Rules in XSLT Specification</a>
  
  @param transformer non-null reference to the the current transform-time state.
  
  @throws TransformerException