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);