curcuru     01/06/29 11:01:13

  Modified:    test/java/src/org/apache/qetest/xalanj2
                        LoggingTraceListener.java
  Log:
  Update to call logElement for cleaner output;
  also added more items to be logged (should still
  add m_atts for appropriate generateEvent events)
  
  Revision  Changes    Path
  1.4       +53 -30    
xml-xalan/test/java/src/org/apache/qetest/xalanj2/LoggingTraceListener.java
  
  Index: LoggingTraceListener.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/xalanj2/LoggingTraceListener.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LoggingTraceListener.java 2001/06/18 04:01:08     1.3
  +++ LoggingTraceListener.java 2001/06/29 18:01:09     1.4
  @@ -64,6 +64,7 @@
   import org.apache.qetest.*;
   
   import java.io.IOException;
  +import java.util.Hashtable;
   
   import org.w3c.dom.Node;
   import org.w3c.dom.traversal.NodeIterator;
  @@ -88,7 +89,7 @@
    * Future improvements: allow you to specify a set of 
    * expected events to validate.
    * @author [EMAIL PROTECTED]
  - * @version $Id: LoggingTraceListener.java,v 1.3 2001/06/18 04:01:08 sboag Exp $
  + * @version $Id: LoggingTraceListener.java,v 1.4 2001/06/29 18:01:09 curcuru Exp $
    */
   public class LoggingTraceListener extends LoggingHandler 
          implements TraceListener
  @@ -219,6 +220,10 @@
       /** setExpected, etc. not yet implemented.  */
   
       ////////////////// Implement TraceListener ////////////////// 
  +
  +    /** Name of custom logElement each event outputs: traceListenerDump.  */
  +    public static final String TRACE_LISTENER_DUMP = "traceListenerDump";
  +
       /**
        * Logging implementation of TraceListener method.
        * Method that is called when a trace event occurs.
  @@ -229,30 +234,37 @@
       public void trace(TracerEvent tracerEvent)
       {
           counters[TYPE_TRACE]++;
  +
  +        Hashtable attrs = new Hashtable();
  +        attrs.put("event", "trace");
  +        attrs.put("location", "L" + tracerEvent.m_styleNode.getLineNumber()
  +                  + "C" + tracerEvent.m_styleNode.getColumnNumber());
   
  -        StringBuffer buf = new StringBuffer("trace:");
  -        int dumpLevel = XalanDumper.DUMP_DEFAULT;
  -        if (null != tracerEvent.m_mode) // not terribly elegant way to do it
  -            dumpLevel = XalanDumper.DUMP_NOCLOSE;
  +        StringBuffer buf = new StringBuffer("  <styleNode>");
           switch (tracerEvent.m_styleNode.getXSLToken())
           {
               // Specific handling for most common 'interesting' items
               case Constants.ELEMNAME_TEXTLITERALRESULT :
  -                buf.append(XalanDumper.dump((ElemTextLiteral) 
tracerEvent.m_styleNode, dumpLevel));
  +                buf.append(XalanDumper.dump((ElemTextLiteral) 
tracerEvent.m_styleNode, XalanDumper.DUMP_DEFAULT));
                   break;
   
               case Constants.ELEMNAME_TEMPLATE :
  -                buf.append(XalanDumper.dump((ElemTemplate) tracerEvent.m_styleNode, 
dumpLevel));
  +                buf.append(XalanDumper.dump((ElemTemplate) tracerEvent.m_styleNode, 
XalanDumper.DUMP_DEFAULT));
                   break;
   
               default :
  -                buf.append(XalanDumper.dump((ElemTemplateElement) 
tracerEvent.m_styleNode, dumpLevel));
  +                buf.append(XalanDumper.dump((ElemTemplateElement) 
tracerEvent.m_styleNode, XalanDumper.DUMP_DEFAULT));
           }
  -        if (null != tracerEvent.m_mode)
  -            buf.append(XalanDumper.SEP + "m_mode=" + tracerEvent.m_mode + 
XalanDumper.RBRACKET);
  +        buf.append("  </styleNode>\n");
  +        // Always add the mode value; will either use toString() 
  +        //  automatically or will print 'null'
  +        buf.append("  <m_mode>" + tracerEvent.m_mode + "</m_mode>\n");
   
  +        // Also dump the sourceNode too!
  +        buf.append("  <m_sourceNode>" + XalanDumper.dump(tracerEvent.m_sourceNode, 
XalanDumper.DUMP_DEFAULT) + "</m_sourceNode>\n");
  +
           setLastItem(buf.toString());
  -        logger.logMsg(level, prefix + getLast());
  +        logger.logElement(level, TRACE_LISTENER_DUMP, attrs, buf.toString());
       }
   
       /**
  @@ -266,8 +278,13 @@
               throws javax.xml.transform.TransformerException
       {
           counters[TYPE_SELECTED]++;
  +
  +        Hashtable attrs = new Hashtable();
  +        attrs.put("event", "selected");
  +        attrs.put("location", "L" + selectionEvent.m_styleNode.getLineNumber()
  +                  + "C" + selectionEvent.m_styleNode.getColumnNumber());
   
  -        StringBuffer buf = new StringBuffer("selected:");
  +        StringBuffer buf = new StringBuffer("  <styleNode>");
           ElemTemplateElement styleNodeElem = (ElemTemplateElement) 
selectionEvent.m_styleNode;
           ElemTemplateElement parent = (ElemTemplateElement) 
styleNodeElem.getParentNode();
           if (parent == styleNodeElem.getStylesheetRoot().getDefaultRootRule())
  @@ -283,14 +300,15 @@
               buf.append("[default-rule]");
           }
           else
  -            buf.append(XalanDumper.dump(styleNodeElem, XalanDumper.DUMP_NOCLOSE));
  +            buf.append(XalanDumper.dump(styleNodeElem, XalanDumper.DUMP_DEFAULT));
  +        buf.append("  </styleNode>\n");
   
  -        buf.append(selectionEvent.m_attributeName + "="
  -                   + selectionEvent.m_xpath.getPatternString() + ";");
  +        buf.append("  <m_xpath>" + selectionEvent.m_attributeName + "="
  +                   + selectionEvent.m_xpath.getPatternString() + "</m_xpath>\n");
   
  +        buf.append("  <m_selection>");
           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)
  @@ -327,9 +345,10 @@
           {
               buf.append("[" + selectionEvent.m_selection.str() +"]");
           }
  -        buf.append(XalanDumper.RBRACKET);   // Since we said DUMP_NOCLOSE above
  +        buf.append("</m_selection>\n");
  +        buf.append("  <m_sourceNode>" + 
XalanDumper.dump(selectionEvent.m_sourceNode, XalanDumper.DUMP_DEFAULT) + 
"</m_sourceNode>\n");
           setLastItem(buf.toString());
  -        logger.logMsg(level, prefix + getLast());
  +        logger.logElement(level, TRACE_LISTENER_DUMP, attrs, buf.toString());
       }
   
       /**
  @@ -341,53 +360,57 @@
       public void generated(GenerateEvent generateEvent)
       {
           counters[TYPE_GENERATED]++;
  +
  +        Hashtable attrs = new Hashtable();
  +        attrs.put("event", "generated");
   
  -        StringBuffer buf = new StringBuffer("generated:");
  +        StringBuffer buf = new StringBuffer("  <eventtype ");
           switch (generateEvent.m_eventtype)
           {
               case GenerateEvent.EVENTTYPE_STARTDOCUMENT :
  -                buf.append("STARTDOCUMENT");
  +                buf.append("type=\"STARTDOCUMENT\">");
               break;
   
               case GenerateEvent.EVENTTYPE_ENDDOCUMENT :
  -                buf.append("ENDDOCUMENT");
  +                buf.append("type=\"ENDDOCUMENT\">");
               break;
   
               case GenerateEvent.EVENTTYPE_STARTELEMENT :
  -                buf.append("STARTELEMENT[" + generateEvent.m_name + "]"); // just 
hardcode [ LBRACKET ] RBRACKET here
  +                buf.append("type=\"STARTELEMENT\">" + generateEvent.m_name);
               break;
   
               case GenerateEvent.EVENTTYPE_ENDELEMENT :
  -                buf.append("ENDELEMENT[" + generateEvent.m_name + "]");
  +                buf.append("type=\"ENDELEMENT\">" + generateEvent.m_name);
               break;
   
               case GenerateEvent.EVENTTYPE_CHARACTERS :
                   String chars1 = new String(generateEvent.m_characters, 
generateEvent.m_start, generateEvent.m_length);
  -                buf.append("CHARACTERS[" + chars1 + "]");
  +                buf.append("type=\"CHARACTERS\">" + chars1);
               break;
   
               case GenerateEvent.EVENTTYPE_CDATA :
                   String chars2 = new String(generateEvent.m_characters, 
generateEvent.m_start, generateEvent.m_length);
  -                buf.append("CDATA[" + chars2 + "]");
  +                buf.append("type=\"CDATA\">" + chars2);
               break;
   
               case GenerateEvent.EVENTTYPE_COMMENT :
  -                buf.append("COMMENT[" + generateEvent.m_data + "]");
  +                buf.append("type=\"COMMENT\">" + generateEvent.m_data);
               break;
   
               case GenerateEvent.EVENTTYPE_PI :
  -                buf.append("PI[" + generateEvent.m_name + ", " + 
generateEvent.m_data + "]");
  +                buf.append("type=\"PI\">" + generateEvent.m_name + ", " + 
generateEvent.m_data);
               break;
   
               case GenerateEvent.EVENTTYPE_ENTITYREF :
  -                buf.append("ENTITYREF[" + generateEvent.m_name + "]");
  +                buf.append("type=\"ENTITYREF\">" + generateEvent.m_name);
               break;
   
               case GenerateEvent.EVENTTYPE_IGNORABLEWHITESPACE :
  -                buf.append("IGNORABLEWHITESPACE");
  +                buf.append("type=\"IGNORABLEWHITESPACE\">");
               break;
           }
  +        buf.append("</eventtype>\n");
           setLastItem(buf.toString());
  -        logger.logMsg(level, prefix + getLast());
  +        logger.logElement(level, TRACE_LISTENER_DUMP, attrs, buf.toString());
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to