blob: abfb919f86e2f6c7ee6035cd4e2a370800cc540a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef AXIOM_NODE_INTERNAL_H
#define AXIOM_NODE_INTERNAL_H
/** @defgroup axiom AXIOM (Axis Object Model)
* @ingroup axis2
* @{
*/
/** @} */
#include <axiom_node.h>
#ifdef __cplusplus
extern "C"
{
#endif
/**
* @defgroup axiom_node OM Node
* @ingroup axiom
* @{
*/
struct axiom_document;
struct axiom_stax_builder;
/**
* Sets a parent node to a given node, if a parent already exist for this node
* then it is detached before seting the parent internal function;
* @param om_node child node to whom a parent to be added. , cannot be NULL.
* @param env Environment. MUST NOT be NULL, .
* @param parent_node the node that will be set as parent. , cannot be NULL.
* @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
*/
axis2_status_t AXIS2_CALL
axiom_node_set_parent(
axiom_node_t * om_node,
const axutil_env_t * env,
axiom_node_t * parent);
/**
* Sets a node as first child of om_node
* @param om_node om_node
* @param env environment, MUST NOT be NULL.
* @param first_child child to be set as first child
*/
void AXIS2_CALL
axiom_node_set_first_child(
axiom_node_t * om_node,
const axutil_env_t * env,
axiom_node_t * first_child);
/**
* Sets previous sibling
* @param om_node
* @param env environment, MUST NOT be NULL.
* @param prev_sibling
*/
void AXIS2_CALL
axiom_node_set_previous_sibling(
axiom_node_t * om_node,
const axutil_env_t * env,
axiom_node_t * prev_sibling);
/**
* Sets next sibling
* @param om_node
* @param env environment, MUST NOT be NULL.
* @param last_sibling
*/
void AXIS2_CALL
axiom_node_set_next_sibling(
axiom_node_t * om_node,
const axutil_env_t * env,
axiom_node_t * next_sibling);
/**
* Sets node type
* @param om_node
* @param env environment, MUST NOT be NULL.
* @param type type of the node
*/
axis2_status_t AXIS2_CALL
axiom_node_set_node_type(
axiom_node_t * om_node,
const axutil_env_t * env,
axiom_types_t type);
/**
* Sets data element
* @param om_node node struct
* @param env environment, MUST NOT be NULL.
* @param data_element
*/
void AXIS2_CALL
axiom_node_set_data_element(
axiom_node_t * om_node,
const axutil_env_t * env,
void *data_element);
/**
* Sets the build status , if the node if completety build, this attribute is
* set to AXIS2_TRUE , otherwise AXIS2_FALSE
* @param om_node
* @param env environment, MUST NOT be NULL.
* @param done
*/
void AXIS2_CALL
axiom_node_set_complete(
axiom_node_t * om_node,
const axutil_env_t * env,
axis2_bool_t done);
/**
* Sets the builder
*/
void AXIS2_CALL
axiom_node_set_builder(
axiom_node_t * om_node,
const axutil_env_t * env,
struct axiom_stax_builder *builder);
void AXIS2_CALL
axiom_node_assume_builder_ownership(
axiom_node_t *om_node,
const axutil_env_t * env);
#if 0
/**
* This functions is only to be used by builder
* do not use this function
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_document(
axiom_node_t * om_node,
const axutil_env_t * env,
struct axiom_document *om_doc);
AXIS2_EXTERN struct axiom_stax_builder *AXIS2_CALL
axiom_node_get_builder(
axiom_node_t * om_node,
const axutil_env_t * env);
#endif
/** @} */
#ifdef __cplusplus
}
#endif
#endif /** AXIOM_NODE_INTERNAL_H */