You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ed...@apache.org on 2006/05/08 18:35:31 UTC

svn commit: r405091 - in /incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom: sdo_axiom.cpp sdo_axiom.h

Author: edslattery
Date: Mon May  8 09:35:28 2006
New Revision: 405091

URL: http://svn.apache.org/viewcvs?rev=405091&view=rev
Log:
toSdo method

Modified:
    incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.cpp
    incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.h

Modified: incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.cpp
URL: http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.cpp?rev=405091&r1=405090&r2=405091&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.cpp (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.cpp Mon May  8 09:35:28 2006
@@ -135,7 +135,47 @@
         }
 
 
-        void AxiomHelper::output(axis2_om_document_t* document)
+        DataObjectPtr AxiomHelper::toSdo(axis2_om_document_t* document,
+            DataFactoryPtr factory)
+        {
+        
+            if (!the_env)
+            {
+                cout << "No Axis Environment" << endl;
+                return 0;
+            }
+
+            XMLHelperPtr helper = HelperProvider::getXMLHelper(factory);
+
+            axis2_xml_writer_t* writer = axis2_xml_writer_create_for_memory(
+                &the_env, NULL, AXIS2_TRUE, 0);
+    
+            axis2_om_output_t* output = axis2_om_output_create(&the_env, writer);
+    
+            axis2_om_node_t* root_node = 
+                AXIS2_OM_DOCUMENT_GET_ROOT_ELEMENT(document, &the_env);
+ 
+            if (!root_node)
+            {
+                cout << "No Root Element in the document" << endl;
+                AXIS2_OM_OUTPUT_FREE(output, &the_env);
+                return 0;
+            }
+
+            AXIS2_OM_NODE_SERIALIZE(root_node, &the_env, output);
+    
+            axis2_char_t* buffer = AXIS2_XML_WRITER_GET_XML(writer, &the_env);
+
+            XMLDocumentPtr theXMLDocument = helper->load(buffer);
+
+            if (theXMLDocument != 0)
+            {
+                return theXMLDocument->getRootDataObject();
+            }
+            return 0;
+        }
+ 
+       void AxiomHelper::output(axis2_om_document_t* document)
         {
         
             if (!the_env)

Modified: incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.h
URL: http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.h?rev=405091&r1=405090&r2=405091&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.h (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/sdo_axiom/sdo_axiom.h Mon May  8 09:35:28 2006
@@ -29,6 +29,8 @@
 
 #include "commonj/sdo/SDO.h"
 
+using namespace commonj::sdo;
+
 namespace commonj
 {
     namespace sdo_axiom
@@ -51,6 +53,8 @@
             SDO_AXIOM_API static void releaseHelper(AxiomHelper* ax);
 
             SDO_AXIOM_API axis2_om_document_t*  toAxiom(DataObjectPtr dob);
+
+            SDO_AXIOM_API DataObjectPtr  toSdo(axis2_om_document_t* doc,DataFactoryPtr factory);
 
             SDO_AXIOM_API void output(axis2_om_document_t* document);