in java/src/org/apache/qetest/xalanj2/LoggingPrintTraceListener.java [304:373]
public void selected(SelectionEvent selectionEvent)
throws javax.xml.transform.TransformerException
{
super.selected(selectionEvent);
counters[TYPE_SELECTED]++;
StringBuffer buf = new StringBuffer("selected:");
ElemTemplateElement styleNodeElem = (ElemTemplateElement) selectionEvent.m_styleNode;
ElemTemplateElement parent = (ElemTemplateElement) styleNodeElem.getParentNode();
if (parent == styleNodeElem.getStylesheetRoot().getDefaultRootRule())
{
buf.append("[default-root-rule]");
}
else if (parent == styleNodeElem.getStylesheetRoot().getDefaultTextRule())
{
buf.append("[default-text-rule]");
}
else if (parent == styleNodeElem.getStylesheetRoot().getDefaultRule())
{
buf.append("[default-rule]");
}
else
buf.append(XalanDumper.dump(styleNodeElem, XalanDumper.DUMP_NOCLOSE));
buf.append(selectionEvent.m_attributeName + "="
+ selectionEvent.m_xpath.getPatternString() + ";");
if (selectionEvent.m_selection.getType() == selectionEvent.m_selection.CLASS_NODESET)
{
// Must create as DTMNodeIterator for DTM_EXP merge 13-Jun-01
NodeIterator nl = selectionEvent.m_selection.nodeset();
if (nl instanceof ContextNodeList)
{
try
{
nl = ((ContextNodeList)nl).cloneWithReset();
}
catch(CloneNotSupportedException cnse)
{
buf.append("[Can't trace nodelist, threw: CloneNotSupportedException]");
}
Node pos = nl.nextNode();
if (null == pos)
{
buf.append("[empty node list]");
}
else // (null == pos)
{
while (null != pos)
{
buf.append(" " + pos);
pos = nl.nextNode();
}
}
}
else // (nl instanceof ContextNodeList)
{
buf.append("[Can't trace nodelist: it isn't a ContextNodeList]");
}
}
else // (selectionEvent.m_selection.getType() == selectionEvent.m_selection.CLASS_NODESET)
{
buf.append("[" + selectionEvent.m_selection.str() +"]");
}
buf.append(XalanDumper.RBRACKET); // Since we said DUMP_NOCLOSE above
setLastItem(buf.toString());
logger.logMsg(level, prefix + getLast());
}