Cleaning dead code
[SXSI/xpathcomp.git] / XMLDocShredder.cpp
index 722c291..c048d2e 100644 (file)
@@ -53,21 +53,25 @@ void XMLDocShredder::setProperties(){
   
 }
 XMLDocShredder::XMLDocShredder(const unsigned char * data,
-                              TextReader::size_type size)                      
+                              TextReader::size_type size,
+                              int sf, 
+                              bool iet, 
+                              bool dtc)                        
 {
   last_text = false;
   reader_ = new TextReader(data,size,"");
   setProperties();
-  storageIfc_ = new SXSIStorageInterface();
+  storageIfc_ = new SXSIStorageInterface(sf,iet,dtc);
+  buffer = "";
 }
 
-XMLDocShredder::XMLDocShredder(const string inFileName)
+XMLDocShredder::XMLDocShredder(const string inFileName,int sf, bool iet, bool dtc)
 {
   last_text = false;
   reader_ = new TextReader(inFileName);
   setProperties();
-  storageIfc_ = new SXSIStorageInterface();
-
+  storageIfc_ = new SXSIStorageInterface(sf,iet,dtc);
+  buffer = "";
 }
 
 XMLDocShredder::~XMLDocShredder()
@@ -84,10 +88,9 @@ void XMLDocShredder::processStartElement()
        ustring name = reader_->get_name();
        bool empty = false;
        
-       if (!last_text)
-         storageIfc_->newText(""); //prevText
-       last_text = false;
-
+       storageIfc_->newText(buffer); //prevText
+       buffer.erase();
+       
        storageIfc_->newChild(name);
 
        /* We must be really carefull here. calling process attributes moves
@@ -106,22 +109,17 @@ void XMLDocShredder::processStartElement()
        
        if (empty){
            storageIfc_->newText("");  //myText
-           storageIfc_->nodeFinished(name);
-           storageIfc_->newText("");  //nextText
+           storageIfc_->nodeFinished(name);       
        };
 
 
-
-
-
 }
 
 void XMLDocShredder::processEndElement()
 {
   // tell the storage interface that the current node has been completely processed
-  if (!last_text)
-    storageIfc_->newText(""); //nextText of previous node
-  last_text = false;
+  storageIfc_->newText(buffer); //prevText
+  buffer.erase();
   storageIfc_->nodeFinished(reader_->get_name());
 }
 
@@ -130,20 +128,18 @@ void XMLDocShredder::processPCDATA()
        // send the content of this PCDATA node to the storage interface as a text node
          
        if (reader_->has_value())
-       {         
-         storageIfc_->newChild("<$>");
-         storageIfc_->newText(reader_->get_value());
-         last_text = true;
-       }
-       else 
-         storageIfc_->newText("");
+       {
+         buffer += reader_->get_value();
+       };
+
 }
 
 void XMLDocShredder::processAttributes()
 {
        reader_->move_to_first_attribute();
                
-       string nspaceStr = "xmlns";     
+       string nspaceStr = "xmlns";
+       storageIfc_->newText(""); //prevText
        storageIfc_->newChild("<@>");
        do
        {
@@ -167,24 +163,21 @@ void XMLDocShredder::processAttributes()
                 
                else
                {
-                       storageIfc_->newChild(name);
-                       storageIfc_->newChild("<$>");
-                       storageIfc_->newText(value);
-                       storageIfc_->nodeFinished("<$>");
+                 storageIfc_->newText(""); //prevText
+                 storageIfc_->newChild(name);
+                 storageIfc_->newText(value);
+                 storageIfc_->nodeFinished(name);
                }
        }
        while (reader_->move_to_next_attribute());
+       storageIfc_->newText(""); //nextText
        storageIfc_->nodeFinished("<@>");
 }
 
 void XMLDocShredder::processSignificantWhitespace()
 {
-       ustring value = reader_->get_value();
-       
-       // each significant whitespace sequence constructs a text node
-       storageIfc_->newChild("<$>");
-       storageIfc_->newText(value);
-
+  // each significant whitespace sequence constructs a text node
+  buffer += reader_->get_value();      
        
 }
 
@@ -199,6 +192,7 @@ void XMLDocShredder::processEndDocument()
 {
        /* tell the storage interface that document parsing has finished, and structures
         * can now be written to disk. */
+  storageIfc_->newText("");
   storageIfc_->nodeFinished("");
   storageIfc_->parsingFinished();      
 }
@@ -239,10 +233,8 @@ void XMLDocShredder::processCDATASection()
         */
   
        ustring value = reader_->get_value();
-       storageIfc_->newChild("<$>");
        storageIfc_->newText(value);
        last_text = true;
-       //      storageIfc_->nodeFinished();
 
 }