pauldick    2002/06/14 08:12:05

  Modified:    test/java/src/org/apache/qetest/dtm
                        TimeDTMTraverserDeep.java
  Log:
  Major cleanup and integration with QeDtmUtils
  
  Revision  Changes    Path
  1.4       +7 -133    
xml-xalan/test/java/src/org/apache/qetest/dtm/TimeDTMTraverserDeep.java
  
  Index: TimeDTMTraverserDeep.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/dtm/TimeDTMTraverserDeep.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TimeDTMTraverserDeep.java 10 Jun 2002 19:00:15 -0000      1.3
  +++ TimeDTMTraverserDeep.java 14 Jun 2002 15:12:05 -0000      1.4
  @@ -67,6 +67,7 @@
   import org.apache.xml.dtm.*;
   import org.apache.xml.dtm.ref.*;
   
  +import org.apache.qetest.dtm.*;
   import org.apache.qetest.dtm.dtmWSStripper;
   
   
  @@ -84,80 +85,18 @@
    * */
   public class TimeDTMTraverserDeep {
   
  -static final String[] TYPENAME=
  -  { "NULL",
  -    "ELEMENT",
  -    "ATTRIBUTE",
  -    "TEXT",
  -    "CDATA_SECTION",
  -    "ENTITY_REFERENCE",
  -    "ENTITY",
  -    "PROCESSING_INSTRUCTION",
  -    "COMMENT",
  -    "DOCUMENT",
  -    "DOCUMENT_TYPE",
  -    "DOCUMENT_FRAGMENT",
  -    "NOTATION",
  -    "NAMESPACE"
  -  };
  -
     public static void main(String argv[])
     {
        long dtmStart = 0;              // Time the creation of dtmManager, and 
dtm initialization.
   
        System.out.println("\n#### Testing Traversal of DEEP documents. ####");
  -     try
  -    {
  -             // Pick our input source
  -             Source source=null;
  -             if(argv.length<1)
  -             {
  -                     String defaultSource=
  -                             "<?xml version=\"1.0\"?>\n"+
  -                             "<Document>"+
  -                             "<Aa><Ab><Ac><Ad><Ae><Af><Ag><Ah><Ai><Aj><Ak>"+
  -                             "<Al><Am><An><Ao><Ap><Aq><Ar><As><At><Au><Av>"+
  -                             "<Aw><Ax><Ay><Az/>"+
  -                             "</Ay></Ax></Aw>"+
  -                             
"</Av></Au></At></As></Ar></Aq></Ap></Ao></An></Am></Al>"+
  -                             
"</Ak></Aj></Ai></Ah></Ag></Af></Ae></Ad></Ac></Ab></Aa>"+
  -                             "</Document>";
  -
  -                     source=new StreamSource(new 
StringReader(defaultSource));
  -             }
  -             else if (argv.length>1 &&  "X".equalsIgnoreCase(argv[1]))
  -             {
  -                     // XNI stream startup goes here
  -                     // Remember to perform Schema validation, to obtain 
PSVI annotations
  -             }
  -             else
  -             {
  -                     // Read from a URI via whatever mechanism the 
DTMManager prefers
  -                     source=new StreamSource(argv[0]);
  -             }
  -     
  -      // Get a DTM manager, and ask it to load the DTM "uniquely",
  -      // with no whitespace filtering, nonincremental, but _with_
  -      // indexing (a fairly common case, and avoids the special
  -      // mode used for RTF DTMs).
   
  -       // For testing with some of David Marston's files I do want to strip 
whitespace.
  -       dtmWSStripper stripper = new dtmWSStripper();
  +     StringBuffer buf = new StringBuffer();
   
  +     DTM dtm = QeDtmUtils.createDTM(0, QeDtmUtils.deepFile, buf);
   
          // Time the creation of the dtm
   
  -
  -       dtmStart = System.currentTimeMillis();
  -      DTMManager manager= new DTMManagerDefault().newInstance(new 
XMLStringFactoryImpl());
  -      DTM dtm=manager.getDTM(source, true, stripper, false, true);
  -       System.out.println("DTM initialization took: "+ 
(System.currentTimeMillis() - dtmStart)+ "\n");
  -
  -       System.out.println("Pre-DTM free memory:" + 
Runtime.getRuntime().freeMemory());
  -       System.out.println("Post-DTM free memory:" + 
Runtime.getRuntime().freeMemory());
  -       Runtime.getRuntime().gc();
  -       System.out.println("Post-GC free memory:" + 
Runtime.getRuntime().freeMemory());
  -
          // Get various nodes to use as context nodes.
          int dtmRoot = dtm.getDocument();                                      
// #document
          String dtmRootName = dtm.getNodeName(dtmRoot);        // Used for 
output
  @@ -170,12 +109,12 @@
   
          // Get a traverser for Descendant:: axis.
          System.out.println("\n* DESCENDANT from "+"<"+DNodeName+">");
  -       timeAxis(dtm, Axis.DESCENDANT, DNode, rtData);
  +       QeDtmUtils.timeAxisTraverser(dtm, Axis.DESCENDANT, DNode, rtData);
          System.out.println("Time="+rtData[0] + " : " + 
"LastNode="+rtData[1]+" nodes="+rtData[2]);
   
          // Get a traverser for Descendant:: axis.
          System.out.println("\n* DESCENDANT-OR-SELF from "+"<"+DNodeName+">");
  -       timeAxis(dtm, Axis.DESCENDANTORSELF, DNode, rtData);
  +       QeDtmUtils.timeAxisTraverser(dtm, Axis.DESCENDANTORSELF, DNode, 
rtData);
          System.out.println("Time="+rtData[0] + " : " + 
"LastNode="+rtData[1]+" nodes="+rtData[2]);
   
          // Use last node from Child traverse as Context node for subsequent 
traversals
  @@ -184,79 +123,14 @@
   
          // Get a traverser for Ancestor:: axis.
          System.out.println("\n* ANCESTOR from "+"<"+lastNodeName+">");        
  -       timeAxis(dtm, Axis.ANCESTOR, lastNode, rtData);
  +       QeDtmUtils.timeAxisTraverser(dtm, Axis.ANCESTOR, lastNode, rtData);
          System.out.println("Time="+rtData[0] + " : " + 
"LastNode="+rtData[1]+" nodes="+rtData[2]);
   
          // Get a traverser for Ancestor:: axis.
          System.out.println("\n* ANCESTOR-OR-SELF from 
"+"<"+lastNodeName+">");        
  -       timeAxis(dtm, Axis.ANCESTORORSELF, lastNode, rtData);
  +       QeDtmUtils.timeAxisTraverser(dtm, Axis.ANCESTORORSELF, lastNode, 
rtData);
          System.out.println("Time="+rtData[0] + " : " + 
"LastNode="+rtData[1]+" nodes="+rtData[2]);
        }
   
  -    catch(Exception e)
  -      {
  -        e.printStackTrace();
  -      }
  -  }
  -  
  - static void timeAxis(DTM dtm, int axis, int context, int[] rtdata)
  -  {  
  -    long startTime = 0;
  -     long endTime = 0;
  -    long travTime = 0;
  -     int atNode = 0;
  -     int lastNode = 0;
  -     int numOfNodes =0;
  -
  -     DTMAxisTraverser at = dtm.getAxisTraverser(axis);
  -
  -     // Time the traversal.
  -     startTime = System.currentTimeMillis();
  -
  -    for (atNode = at.first(context); DTM.NULL != atNode;
  -                  atNode = at.next(context, atNode))
  -             { //printNode(dtm, atNode, " ");
  -          lastNode = atNode;
  -               numOfNodes = numOfNodes + 1;
  -     }
  -
  -    travTime = System.currentTimeMillis() - startTime;
  -
  -     //System.out.println("Time was: " + travTime );
  -     //System.out.println("lastNode was: " + lastNode );
  -
  -     printNode(dtm, lastNode, " ");
  -     rtdata[0] = (int)travTime;
  -     rtdata[1] = lastNode;
  -     rtdata[2] = numOfNodes;
  -
  -
  -  }
  -
  -
  -  static void printNode(DTM dtm,int nodeHandle,String indent)
  -  {
  -    // Briefly display this node
  -    // Don't bother displaying namespaces or attrs; we do that at the
  -    // next level up.
  -    // %REVIEW% Add namespace info, type info, ...
  -
  -    // Formatting hack -- suppress quotes when value is null, to distinguish
  -    // it from "null".
  -    String value=dtm.getNodeValue(nodeHandle);
  -    String vq=(value==null) ? "" : "\"";
  -
  -    // Skip outputing of text nodes. In most cases they clutter the output, 
  -     // besides I'm only interested in the elemental structure of the dtm. 
  -    if( TYPENAME[dtm.getNodeType(nodeHandle)] != "TEXT" )
  -     {
  -     System.out.println(indent+
  -                    +nodeHandle+": "+
  -                    TYPENAME[dtm.getNodeType(nodeHandle)]+" "+
  -                        dtm.getNodeName(nodeHandle)+" "+
  -                        " Level=" + dtm.getLevel(nodeHandle)
  -                    ); 
  -     }
     }
     
  -}
  \ No newline at end of file
  
  
  

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

Reply via email to