code: public XObject getValue(TransformerImpl transformer, int sourceNode)
            throws TransformerException
    {
  
      XObject var;
      XPathContext xctxt = transformer.getXPathContext();
  
      xctxt.pushCurrentNode(sourceNode);
  
      try
      {
        if (null != m_selectPattern)
        {
          var = m_selectPattern.execute(xctxt, sourceNode, this);
  
          var.allowDetachToRelease(false);
        }
        else if (null == getFirstChildElem())
        {
          var = XString.EMPTYSTRING;
        }
        else
        {
  
          // Use result tree fragment
          int df = transformer.transformToRTF(this);
  
          var = new XRTreeFrag(df, xctxt, this);
        }
      }
      finally
      {
        xctxt.popCurrentNode();
      }
  
      return var;
    }
docs: Get the XObject representation of the variable.
  
  @param transformer non-null reference to the the current transform-time state.
  @param sourceNode non-null reference to the <a href="http://www.w3.org/TR/xslt#dt-current-node">current source node</a>.
  
  @return the XObject representation of the variable.
  
  @throws TransformerException