summaryrefslogtreecommitdiffstats
path: root/axiom/include/axiom_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'axiom/include/axiom_util.h')
-rw-r--r--axiom/include/axiom_util.h396
1 files changed, 396 insertions, 0 deletions
diff --git a/axiom/include/axiom_util.h b/axiom/include/axiom_util.h
new file mode 100644
index 0000000..9c87877
--- /dev/null
+++ b/axiom/include/axiom_util.h
@@ -0,0 +1,396 @@
+
+/*
+ * 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_UTIL_H
+#define AXIOM_UTIL_H
+
+#include <axutil_array_list.h>
+#include <axutil_string.h>
+#include <axiom.h>
+#include <axutil_uri.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+ /**
+ * After calling this method the variable child points to
+ * the node of the returning element
+ * @param ele_node axiom node
+ * @param env environment, MUST not be NULL
+ * @param uri uri
+ * return the first child element which has the given uri
+ */
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_first_child_element_with_uri(
+ axiom_node_t * ele_node,
+ const axutil_env_t * env,
+ axis2_char_t * uri,
+ axiom_node_t ** child);
+ /**
+ * After calling this method next_node will point to the
+ * previous sibling node to the returning node
+ * @param ele_node axiom node
+ * @param env environment, MUST not be NULL
+ * @param uri uri
+ * @param next_node
+ * return the next sibling element to the element which contains
+ * the give namespace uri
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_next_sibling_element_with_uri(
+ axiom_node_t * ele_node,
+ const axutil_env_t * env,
+ axis2_char_t * uri,
+ axiom_node_t ** next_node);
+ /**
+ * @param eleaxiom node
+ * @param env environment, MUST not be NULL
+ * @param ele_node
+ * @param child_node
+ * return the first child element this calls the method
+ * axiom_element_get_first_child_element
+ *
+ */
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_first_child_element(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele axiom element
+ * @param env environment, MUST not be NULL
+ * @param ele_node
+ * @param child_node
+ * return the last child element of the given element ele_node
+ */
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_last_child_element(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele axiom node
+ * @param env environment, MUST not be NULL
+ * @param ele_node
+ * @param next_node
+ * return the first child element which has the given uri
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_next_sibling_element(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axiom_node_t ** next_node);
+ /**
+ * @param ele axiom element
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param localname localname to find the first child element
+ * @param child_node
+ *
+ * return the first child element from ele_node which contains the
+ * given local name
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_first_child_element_with_localname(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param localname to find the last child element
+ * @param child_node
+ * return the last child element which having the given local name
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_last_child_element_with_localname(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param localname to find the last child element
+ * @param next_node
+ * return the next sibling element which is having the given local name
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_next_siblng_element_with_localname(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axiom_node_t ** next_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param localname to find the last child element
+ * @param uri uri to of the namespace to find the first element
+ * @param next_node
+ * return the first child element which is having the given local
+ * name and the given namespace uri
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_first_child_element_with_uri_localname(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axis2_char_t * uri,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param localname to find the last child element
+ * @param uri uri of the namespace to find the last element
+ * @param next_node
+ * return the last child element which is having the given local name and
+ * the given namespace uri
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_last_child_element_with_uri_localname(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axis2_char_t * uri,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param localname to find the last child element
+ * @param uri uri of the namespace to find the last element
+ * @param next_node
+ * return next sibling element which is having the given local name and
+ * the given namespace uri
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_next_sibling_element_with_uri_localname(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axis2_char_t * uri,
+ axiom_node_t ** next_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param names local names to find the child element
+ * @param child_node
+ * return the first child element which is having all the localnames given
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_first_child_element_with_localnames(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axutil_array_list_t * names,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param names local names to find the last child element
+ * @param child_node
+ * return the last child element which is having all the localnames given
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_last_child_element_with_localnames(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axutil_array_list_t * names,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node axiom node
+ * @param names local names to find the next sibling
+ * @param child_node
+ * return the next sibling element which is having all the localnames given
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_next_siblng_element_with_localnames(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axutil_array_list_t * names,
+ axiom_node_t ** next_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node
+ * @param localname local name to find the first child
+ * @param attr_name attribute name to find first child
+ * @param attr_value attribute value of attr_name attribute
+ * @param child_node
+ * return the first child element which is having the given local
+ * name and the given attribute (attribute name and attribute value)
+ */
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_first_child_element_with_localname_attr(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axis2_char_t * attr_name,
+ axis2_char_t * attr_value,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node
+ * @param localname local name to find the last child
+ * @param attr_name attribute name to find last child
+ * @param attr_value attribute value of attr_name attribute
+ * @param child_node
+ * return the last child element which is having the given local
+ * name and the given attribute (attribute name and attribute value)
+ */
+
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_last_child_element_with_localname_attr(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axis2_char_t * attr_name,
+ axis2_char_t * attr_value,
+ axiom_node_t ** child_node);
+ /**
+ * @param ele
+ * @param env environment, MUST not be NULL
+ * @param ele_node
+ * @param localname local name to find the next sibling child
+ * @param attr_name attribute name to find the next sibling child
+ * @param attr_value attribute value of attr_name attribute
+ * @param child_node
+ * return the next sibling child element which is having the given local
+ * name and the given attribute (attribute name and attribute value)
+ */
+
+ AXIS2_EXTERN axiom_element_t *AXIS2_CALL
+ axiom_util_get_next_siblng_element_with_localname_attr(
+ axiom_element_t * ele,
+ const axutil_env_t * env,
+ axiom_node_t * ele_node,
+ axis2_char_t * localname,
+ axis2_char_t * attr_name,
+ axis2_char_t * attr_value,
+ axiom_node_t ** next_node);
+ /**
+ * @param node axiom node
+ * @param env environment, MUST not be NULL
+ *
+ * return the element text of axiom_node
+ */
+
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ axiom_util_get_child_text(
+ axiom_node_t * node,
+ const axutil_env_t * env);
+ /**
+ * @param node axiom node
+ * @param env environment, MUST not be NULL
+ *
+ * return the local name of axiom_node
+ */
+
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ axiom_util_get_localname(
+ axiom_node_t * node,
+ const axutil_env_t * env);
+ /**
+ * @param om_node axiom node
+ * @param env environment, MUST not be NULL
+ *
+ * return the namespace uri of the give node variable om_node if
+ * there's no namespace in that particular om_node this method
+ * returns NULL
+ */
+
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ axiom_util_get_node_namespace_uri(
+ axiom_node_t * om_node,
+ const axutil_env_t * env);
+ /**
+ * @param om_ele axiom node
+ * @param env environment, MUST not be NULL
+ * @param om_node
+ * return all the child element using the method
+ * axiom_child_element_iterator_create
+ */
+
+ AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
+ axiom_util_get_child_elements(
+ axiom_element_t * om_ele,
+ const axutil_env_t * env,
+ axiom_node_t * om_node);
+
+ AXIS2_EXTERN axiom_document_t *AXIS2_CALL
+ axiom_util_new_document(
+ const axutil_env_t * env,
+ const axutil_uri_t * uri);
+
+ AXIS2_EXTERN axiom_node_t* AXIS2_CALL
+ axiom_util_get_node_by_local_name(
+ const axutil_env_t *env,
+ axiom_node_t *node,
+ axis2_char_t *local_name);
+
+ /**
+ * Creates a clone of given node
+ * @param env environment, MUST not be NULL
+ * @param node node to be cloned
+ * @return cloned node
+ */
+ AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+ axiom_util_clone_node(
+ const axutil_env_t *env,
+ axiom_node_t *node);
+
+#ifdef __cplusplus
+ }
+#endif
+#endif /* AXIOM_UTIL_H */