summaryrefslogtreecommitdiffstats
path: root/axiom/src/om/om_document.c
diff options
context:
space:
mode:
Diffstat (limited to 'axiom/src/om/om_document.c')
-rw-r--r--axiom/src/om/om_document.c89
1 files changed, 31 insertions, 58 deletions
diff --git a/axiom/src/om/om_document.c b/axiom/src/om/om_document.c
index 149edec..70e905a 100644
--- a/axiom/src/om/om_document.c
+++ b/axiom/src/om/om_document.c
@@ -15,96 +15,72 @@
* limitations under the License.
*/
-#include <axiom_document.h>
-#include <axiom_stax_builder.h>
+#include <axiom_document_internal.h>
+#include <axiom_stax_builder_internal.h>
#include <axutil_string.h>
struct axiom_document
{
-
/** root element */
axiom_node_t *root_element;
/** last child */
axiom_node_t *last_child;
- /** first child */
- axiom_node_t *first_child;
-
- /** done building the document */
- axis2_bool_t done;
-
/** builder of the document */
struct axiom_stax_builder *builder;
- /** char set encoding */
- axis2_char_t *char_set_encoding;
-
- /** XML version */
- axis2_char_t *xml_version;
};
-AXIS2_EXTERN axiom_document_t *AXIS2_CALL
+
+axiom_document_t *AXIS2_CALL
axiom_document_create(
const axutil_env_t * env,
axiom_node_t * root,
axiom_stax_builder_t * builder)
{
axiom_document_t *document = NULL;
-
- AXIS2_ENV_CHECK(env, NULL);
-
document = (axiom_document_t *)AXIS2_MALLOC(env->allocator, sizeof(axiom_document_t));
-
if(!document)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Insufficient memory to create axiom document");
return NULL;
}
document->builder = builder;
document->root_element = root;
- document->first_child = root;
document->last_child = root;
- document->xml_version = XML_VERSION;
- document->char_set_encoding = CHAR_SET_ENCODING;
- document->done = AXIS2_FALSE;
-
return document;
}
-AXIS2_EXTERN void AXIS2_CALL
+void AXIS2_CALL
axiom_document_free(
axiom_document_t * document,
const axutil_env_t * env)
{
- AXIS2_ENV_CHECK(env, void);
-
if(document->root_element)
{
axiom_node_free_tree(document->root_element, env);
}
AXIS2_FREE(env->allocator, document);
- return;
}
-AXIS2_EXTERN void AXIS2_CALL
+void AXIS2_CALL
axiom_document_free_self(
axiom_document_t * document,
const axutil_env_t * env)
{
AXIS2_FREE(env->allocator, document);
- return;
}
-AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+axiom_node_t *AXIS2_CALL
axiom_document_build_next(
axiom_document_t * document,
const axutil_env_t * env)
{
axiom_node_t *last_child = NULL;
- AXIS2_ENV_CHECK(env, NULL);
if(!document->builder)
{
@@ -133,13 +109,33 @@ axiom_document_build_next(
return last_child;
}
+axis2_status_t AXIS2_CALL
+axiom_document_set_root_element(
+ axiom_document_t * document,
+ const axutil_env_t * env,
+ axiom_node_t * node)
+{
+ AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);
+
+ if(document->root_element)
+ {
+ axiom_node_free_tree(document->root_element, env);
+ document->root_element = node;
+ return AXIS2_SUCCESS;
+ }
+ else
+ {
+ document->root_element = node;
+ }
+ return AXIS2_SUCCESS;
+}
+
AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_document_get_root_element(
axiom_document_t * document,
const axutil_env_t * env)
{
axiom_node_t *node = NULL;
- AXIS2_ENV_CHECK(env, NULL);
if(document->root_element)
{
@@ -155,34 +151,11 @@ axiom_document_get_root_element(
return NULL;
}
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axiom_document_set_root_element(
- axiom_document_t * document,
- const axutil_env_t * env,
- axiom_node_t * node)
-{
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);
-
- if(document->root_element)
- {
- axiom_node_free_tree(document->root_element, env);
- document->root_element = node;
- return AXIS2_SUCCESS;
- }
- else
- {
- document->root_element = node;
- }
- return AXIS2_SUCCESS;
-}
-
AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_document_build_all(
struct axiom_document * document,
const axutil_env_t * env)
{
- AXIS2_ENV_CHECK(env, NULL);
if(!document)
{
return NULL;
@@ -220,12 +193,12 @@ axiom_document_build_all(
return NULL;
}
+#if 0
AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
axiom_document_get_builder(
axiom_document_t * document,
const axutil_env_t * env)
{
- AXIS2_ENV_CHECK(env, NULL);
return document->builder;
}
@@ -247,7 +220,6 @@ axiom_document_serialize(
if(!document)
return AXIS2_FAILURE;
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
if(!(document->root_element))
{
axiom_document_get_root_element(document, env);
@@ -261,3 +233,4 @@ axiom_document_serialize(
return AXIS2_FAILURE;
}
}
+#endif