You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/07/06 08:02:31 UTC

svn commit: r419452 [5/46] - in /webservices/axis2/trunk/c/woden: ./ include/ samples/ samples/wsdl10/ src/ src/builder/ src/builder/wsdl10/ src/schema/ src/types/ src/util/ src/wsdl/ src/wsdl/enumeration/ src/wsdl10/ src/wsdl10/enumeration/ src/wsdl10...

Added: webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,239 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_INTERFACE_MSG_REF_H
+#define WODEN_INTERFACE_MSG_REF_H
+
+/**
+ * @file woden_interface_msg_ref.h
+ * @brief Axis2 Interface Message Reference Interface Message Reference
+ * 
+ */
+
+#include <woden.h>
+#include <woden_interface_msg_ref_element.h>
+#include <woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup woden_interface_msg_ref Interface Message Reference
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_interface_msg_ref_base woden_interface_msg_ref_base_t;
+typedef struct woden_interface_msg_ref woden_interface_msg_ref_t;
+typedef struct woden_interface_msg_ref_ops woden_interface_msg_ref_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_interface_msg_ref_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface_msg_ref,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_msg_label) (
+            void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_direction) (
+            void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    /**
+     * Indicates the type of message content.#any means any single element, 
+     * #none means no message content, #other means non-XML extension type system
+     * or #element means XML Schema global element definition.
+     *   
+     * @return string representing the type of message content
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_msg_content_model) (
+            void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_element_declaration) (
+            void *interface_msg_ref,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface_msg_ref,
+            const axis2_env_t *env);
+
+/* ************************************************************
+ *  Non-API implementation methods
+ * ************************************************************/
+    axis2_status_t (AXIS2_CALL *
+    set_element_declaration) (
+            void *interface_msg_ref,
+            const axis2_env_t *env,
+            void *element);
+
+    axis2_status_t (AXIS2_CALL *
+    set_types) (
+            void *interface_msg_ref,
+            const axis2_env_t *env,
+            void *types);
+};
+
+union woden_interface_msg_ref_base
+{
+    woden_nested_configurable_t nested_configurable;
+    woden_interface_msg_ref_element_t interface_msg_ref_element;
+};
+
+struct woden_interface_msg_ref
+{
+    woden_interface_msg_ref_base_t base;
+    woden_interface_msg_ref_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_interface_msg_ref_element(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_nested_configurable(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_configurable(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_nested_element(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_configurable_element(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_documentable_element(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_documentable(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_attr_extensible(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
+woden_interface_msg_ref_to_element_extensible(
+        void *interface_msg_ref,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_interface_msg_ref_resolve_methods(
+        woden_interface_msg_ref_t *interface_msg_ref,
+        const axis2_env_t *env,
+        woden_interface_msg_ref_t *interface_msg_ref_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_INTERFACE_MSG_REF_FREE(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+       free(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_SUPER_OBJS(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+       super_objs(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_TYPE(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+       type(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_GET_BASE_IMPL(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+       get_base_impl(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_GET_MESSAGE_LABEL(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         get_msg_label(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_GET_DIRECTION(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         get_direction(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_GET_MSG_CONTENT_MODEL(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         get_msg_content_model(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_GET_ELEMENT_DECLARATION(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         get_element_declaration(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_TO_ELEMENT(interface_msg_ref, env) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         to_element(interface_msg_ref, env))
+
+#define WODEN_INTERFACE_MSG_REF_SET_ELEMENT_DECLARATION(interface_msg_ref, env, element) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         set_element_declaration(interface_msg_ref, env, element))
+
+#define WODEN_INTERFACE_MSG_REF_SET_TYPES(interface_msg_ref, env, types) \
+      (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         set_types(interface_msg_ref, env, types))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_INTERFACE_MSG_REF_H */

Added: webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_interface_msg_ref_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,216 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_INTERFACE_MSG_REF_ELEMENT_H
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_H
+
+/**
+ * @file woden_interface_msg_ref_element.h
+ * @brief Axis2 Interface Msg Reference Element Interface
+ * This interface represents the &lt;input&gt; and &lt;output&gt; 
+ * child elements of interface operation. 
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <axis2_array_list.h>
+#include <woden.h>
+#include <woden_documentable_element.h>
+#include <woden_configurable_element.h>
+#include <woden_nested_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_interface_msg_ref_element woden_interface_msg_ref_element_t;
+typedef struct woden_interface_msg_ref_element_ops woden_interface_msg_ref_element_ops_t;
+typedef union woden_interface_msg_ref_element_base woden_interface_msg_ref_element_base_t;
+
+/** @defgroup woden_interface_msg_ref_element Interface Msg Reference Element
+  * @ingroup axis2_interface
+  * @{
+  */
+
+struct woden_interface_msg_ref_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *interface_msg_ref_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *interface_msg_ref_element,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_msg_label) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            void *msg_label);
+
+    void *(AXIS2_CALL *
+    get_msg_label) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    set_msg_content_model) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            axis2_char_t *nm_token);
+    
+    axis2_char_t *(AXIS2_CALL *
+    get_msg_content_model) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+ 
+    /**
+     * Set the QName that represents the 'element' attribute of the interface 
+     * operation &lt;input&gt; or &lt;output&gt; element. This identifies a Schema 
+     * element declaration.
+     * 
+     * @param qname the QName that identifies a Schema element declaration
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_element_qname) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            axis2_qname_t *element);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_element_qname) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+    /**
+     * Returns the Schema element declaration identified by the QName in the 'element' 
+     * attribute of the interface operation &lt;input&gt; or &lt;output&gt;  element. 
+     * If this QName does not resolve to an element declaration in a schema that is visible 
+     * to the containing WSDL description, null will be returned by this method. 
+     * To be visible, the Schema must have been correctly imported or inlined within 
+     * the &lt;types&gt; element.
+     * 
+     * @return the XmlSchemaElement identified by the 'element' attribute
+     */
+    void *(AXIS2_CALL *
+    get_element) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_direction) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            void *dir);
+
+    void *(AXIS2_CALL *
+    get_direction) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+
+};
+
+union woden_interface_msg_ref_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_configurable_element_t configurable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_interface_msg_ref_element
+{
+    woden_interface_msg_ref_element_base_t base;
+    woden_interface_msg_ref_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_interface_msg_ref_element_t * AXIS2_CALL
+woden_interface_msg_ref_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_interface_msg_ref_element_resolve_methods(
+        woden_interface_msg_ref_element_t *interface_msg_ref_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_FREE(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         free (interface_msg_ref_element, env))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_TYPE(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         type (interface_msg_ref_element, env))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_SET_MSG_LABEL(interface_msg_ref_element, env, msg_label) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         set_msg_label (interface_msg_ref_element, env, msg_label))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_GET_MSG_LABEL(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+        get_msg_label  (interface_msg_ref_element, env))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_SET_MSG_CONTENT_MODEL(interface_msg_ref_element, env, nm_token) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         set_msg_content_model (interface_msg_ref_element, env, nm_token))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_GET_MSG_CONTENT_MODEL(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         get_msg_content_model (interface_msg_ref_element, env))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_SET_ELEMENT_QNAME(interface_msg_ref_element, env, element) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+        set_element_qname  (interface_msg_ref_element, env, element))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_GET_ELEMENT_QNAME(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+        get_element_qname  (interface_msg_ref_element, env))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_GET_ELEMENT(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+        get_element  (interface_msg_ref_element, env))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_SET_DIRECTION(interface_msg_ref_element, env, dir) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         set_direction (interface_msg_ref_element, env, dir))
+
+#define WODEN_INTERFACE_MSG_REF_ELEMENT_GET_DIRECTION(interface_msg_ref_element, env) \
+      (((woden_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+         get_direction (interface_msg_ref_element, env))
+
+
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_INTERFACE_MSG_REF_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_interface_op.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_interface_op.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_interface_op.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_interface_op.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,220 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_INTERFACE_OP_H
+#define WODEN_INTERFACE_OP_H
+
+/**
+ * @file woden_interface_op.h
+ * @brief Axis2 Interface Operation Interface Operation
+ * 
+ */
+
+#include <woden.h>
+#include <woden_interface_op_element.h>
+#include <woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup woden_interface_op Interface Operation
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_interface_op_base woden_interface_op_base_t;
+typedef struct woden_interface_op woden_interface_op_t;
+typedef struct woden_interface_op_ops woden_interface_op_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_interface_op_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface_op,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface_op,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface_op,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface_op,
+            const axis2_env_t *env);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *interface_op,
+            const axis2_env_t *env);
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_msg_exchange_pattern) (
+            void *interface_op,
+            const axis2_env_t *env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_msg_refs) (
+            void *interface_op,
+            const axis2_env_t *env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_fault_refs) (
+            void *interface_op,
+            const axis2_env_t *env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_style) (
+            void *interface_op,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface_op,
+            const axis2_env_t *env);
+
+};
+
+union woden_interface_op_base
+{
+    woden_nested_configurable_t nested_configurable;
+    woden_interface_op_element_t interface_op_element;
+};
+
+struct woden_interface_op
+{
+    woden_interface_op_base_t base;
+    woden_interface_op_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_interface_op_element(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_nested_configurable(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_nested_component(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_configurable(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_nested_element(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_configurable_element(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_documentable_element(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_documentable(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_attr_extensible(
+        void *interface_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
+woden_interface_op_to_element_extensible(
+        void *interface_op,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_interface_op_resolve_methods(
+        woden_interface_op_t *interface_op,
+        const axis2_env_t *env,
+        woden_interface_op_t *interface_op_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_INTERFACE_OP_FREE(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->free(interface_op, env))
+
+#define WODEN_INTERFACE_OP_SUPER_OBJS(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->super_objs(interface_op, env))
+
+#define WODEN_INTERFACE_OP_TYPE(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->type(interface_op, env))
+
+#define WODEN_INTERFACE_OP_GET_BASE_IMPL(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->get_base_impl(interface_op, env))
+
+#define WODEN_INTERFACE_OP_GET_QNAME(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->\
+         get_qname(interface_op, env))
+
+#define WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->\
+         get_msg_exchange_pattern(interface_op, env))
+
+#define WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->\
+         get_interface_msg_refs(interface_op, env))
+
+#define WODEN_INTERFACE_OP_GET_INTERFACE_FAULT_REFS(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->\
+         get_interface_fault_refs(interface_op, env))
+
+#define WODEN_INTERFACE_OP_GET_STYLE(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->\
+         get_style(interface_op, env))
+
+#define WODEN_INTERFACE_OP_TO_ELEMENT(interface_op, env) \
+      (((woden_interface_op_t *) interface_op)->ops->\
+         to_element(interface_op, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_INTERFACE_OP_H */

Added: webservices/axis2/trunk/c/woden/include/woden_interface_op_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_interface_op_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_interface_op_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_interface_op_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,242 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_INTERFACE_OP_ELEMENT_H
+#define WODEN_INTERFACE_OP_ELEMENT_H
+
+/**
+ * @file woden_interface_op_element.h
+ * @brief Axis2 Interface Msg Reference Element Interface
+ * This interface represents an &lt;operation&gt; child element 
+ * of the WSDL &lt;interface&gt; element. 
+ * It declares the behaviour required to support parsing, 
+ * creating and manipulating an &lt;operation&gt; element.
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <axis2_array_list.h>
+#include <woden.h>
+#include <woden_documentable_element.h>
+#include <woden_configurable_element.h>
+#include <woden_nested_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_interface_op_element woden_interface_op_element_t;
+typedef struct woden_interface_op_element_ops woden_interface_op_element_ops_t;
+typedef union woden_interface_op_element_base woden_interface_op_element_base_t;
+
+/** @defgroup woden_interface_op_element Interface Msg Reference Element
+  * @ingroup axis2_interface
+  * @{
+  */
+
+struct woden_interface_op_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *interface_op_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *interface_op_element,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_qname) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *iface_op_ele,
+            const axis2_env_t *env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    set_pattern) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            axis2_uri_t *uri);
+    
+    axis2_uri_t *(AXIS2_CALL *
+    get_pattern) (
+            void *iface_op_ele,
+            const axis2_env_t *env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    add_style_uri) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            axis2_uri_t *uri);
+
+    axis2_status_t (AXIS2_CALL *
+    remove_style_uri) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            axis2_uri_t *uri);
+    
+    axis2_uri_t *(AXIS2_CALL *
+    get_style) (
+            void *iface_op_ele,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    add_interface_msg_ref_element) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            void *msg_ref);
+
+    axis2_status_t (AXIS2_CALL *
+    remove_interface_msg_ref_element) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            void *msg_ref);
+ 
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_msg_ref_elements) (
+            void *iface_op_ele,
+            const axis2_env_t *env);
+     
+    axis2_status_t (AXIS2_CALL *
+    add_interface_fault_ref_element) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            void *fault_ref);
+
+    axis2_status_t (AXIS2_CALL *
+    remove_interface_fault_ref_element) (
+            void *iface_op_ele,
+            const axis2_env_t *env,
+            void *fault_ref);
+ 
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_fault_ref_elements) (
+            void *iface_op_ele,
+            const axis2_env_t *env);
+    
+
+};
+
+union woden_interface_op_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_configurable_element_t configurable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_interface_op_element
+{
+    woden_interface_op_element_base_t base;
+    woden_interface_op_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_interface_op_element_t * AXIS2_CALL
+woden_interface_op_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_interface_op_element_resolve_methods(
+        woden_interface_op_element_t *interface_op_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_INTERFACE_OP_ELEMENT_FREE(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         free (interface_op_element, env))
+
+#define WODEN_INTERFACE_OP_ELEMENT_TYPE(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         type (interface_op_element, env))
+
+#define WODEN_INTERFACE_OP_ELEMENT_SET_QNAME(interface_op_element, env, qname) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         set_qname (interface_op_element, env, qname))
+
+#define WODEN_INTERFACE_OP_ELEMENT_GET_QNAME(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+        get_qname  (interface_op_element, env))
+
+#define WODEN_INTERFACE_OP_ELEMENT_SET_PATTERN(interface_op_element, env, uri) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         set_pattern (interface_op_element, env, uri))
+
+#define WODEN_INTERFACE_OP_ELEMENT_GET_PATTERN(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         get_pattern (interface_op_element, env))
+
+#define WODEN_INTERFACE_OP_ELEMENT_ADD_STYLE_URI(interface_op_element, env, uri) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+        add_style_uri  (interface_op_element, env, uri))
+
+#define WODEN_INTERFACE_OP_ELEMENT_REMOVE_STYLE_URI(interface_op_element, env, uri) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+        remove_style_uri  (interface_op_element, env, uri))
+
+#define WODEN_INTERFACE_OP_ELEMENT_GET_STYLE(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+        get_style  (interface_op_element, env))
+
+#define WODEN_INTERFACE_OP_ELEMENT_ADD_INTERFACE_MSG_REF_ELEMENT(interface_op_element, env, msg_ref) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         add_interface_msg_ref_element (interface_op_element, env, msg_ref))
+
+#define WODEN_INTERFACE_OP_ELEMENT_REMOVE_MSG_REF_ELEMENT(interface_op_element, env, msg_ref) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         remove_msg_ref_element (interface_op_element, env, msg_ref))
+
+#define WODEN_INTERFACE_OP_ELEMENT_GET_INTERFACE_MSG_REF_ELEMENTS(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         get_interface_msg_ref_elements (interface_op_element, env))
+
+#define WODEN_INTERFACE_OP_ELEMENT_ADD_INTERFACE_FAULT_REF_ELEMENT(interface_op_element, env, fault_ref) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         add_interface_fault_ref_element (interface_op_element, env, fault_ref))
+
+#define WODEN_INTERFACE_OP_ELEMENT_REMOVE_FAULT_REF_ELEMENT(interface_op_element, env, fault_ref) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         remove_fault_ref_element (interface_op_element, env, fault_ref))
+
+#define WODEN_INTERFACE_OP_ELEMENT_GET_INTERFACE_FAULT_REF_ELEMENTS(interface_op_element, env) \
+      (((woden_interface_op_element_t *) interface_op_element)->ops->\
+         get_interface_fault_ref_elements (interface_op_element, env))
+
+
+
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_INTERFACE_OP_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_msg_label.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_msg_label.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_msg_label.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_msg_label.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_MSG_LABEL_H
+#define WODEN_MSG_LABEL_H
+
+/**
+ * @file woden_msg_label.h
+ * @brief Axis2 Message Label Interface
+ * This class defines the values of the {msg_label} property of
+ * Interface Message Reference and Interface Fault Reference. This property 
+ * indicates whether a message is coming "in" to the service or going "out" 
+ * from the service.
+ * <p>
+ * The property is represented in XML by the message or fault 
+ * reference element's tag name:
+ * <ul>
+ * <li>&lt;input&gt; and &lt;infault&gt; have the msg_label "in" - 
+ *     represented by the constant IN
+ * <li>&lt;output&gt; and &lt;outfault&gt; have the msg_label "out" - 
+ *     represented by the constant OUT
+ * </ul>
+ * This class uses the typesafe enum pattern. Applications should use the
+ * constants defined in this class to specify or to 
+ * evaluate msg_label.
+ * <p>
+ * Examples:
+ * <pre>
+ *     WODEN_INTERFACE_MSG_REF_SET_MSG_LABEL(msg_ref, env, msg_ref->WODEN_IN);
+ *     if(msg_ref->WODEN_IN == WODEN_INTERFACE_MSG_REF_GET_MSG_LABEL(msg_ref, env))
+ *          ...
+ *     
+ * </pre>
+ * 
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <woden.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_msg_label woden_msg_label_t;
+typedef struct woden_msg_label_ops woden_msg_label_ops_t;
+struct woden_ext_element;
+
+/** @defgroup woden_msg_label Message Label
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_msg_label_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *msg_label,
+            const axis2_env_t *env);
+
+    axis2_char_t *(AXIS2_CALL *
+    to_string) (
+            void *msg_label,
+            const axis2_env_t *env);
+
+    axis2_bool_t (AXIS2_CALL *
+    is_valid) (
+            void *msg_label,
+            const axis2_env_t *env);
+
+    axis2_bool_t (AXIS2_CALL *
+    equals) (
+            void *msg_label,
+            const axis2_env_t *env,
+            woden_msg_label_t *other);
+
+
+};
+
+struct woden_msg_label
+{
+    woden_msg_label_ops_t *ops;
+    
+};
+
+AXIS2_EXTERN woden_msg_label_t *AXIS2_CALL
+woden_msg_label_get_msg_label_in(
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_msg_label_t *AXIS2_CALL
+woden_msg_label_get_msg_label_out(
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_msg_label_t *AXIS2_CALL
+woden_msg_label_get_invalid_value(
+        const axis2_env_t *env,
+        const axis2_char_t *value);
+
+#define WODEN_MSG_LABEL_FREE(msg_label, env) \
+      (((woden_msg_label_t *) msg_label)->ops->\
+         free (msg_label, env))
+
+#define WODEN_MSG_LABEL_TO_STRING(msg_label, env) \
+      (((woden_msg_label_t *) msg_label)->ops->\
+         to_string (msg_label, env))
+
+#define WODEN_MSG_LABEL_IS_VALID(msg_label, env) \
+      (((woden_msg_label_t *) msg_label)->ops->\
+         is_valid (msg_label, env))
+
+#define WODEN_MSG_LABEL_EQUALS(msg_label, env, other) \
+      (((woden_msg_label_t *) msg_label)->ops->\
+         equals (msg_label, env, other))
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_MSG_LABEL_H */

Added: webservices/axis2/trunk/c/woden/include/woden_msg_ref_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_msg_ref_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_msg_ref_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_msg_ref_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,216 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_MSG_REG_ELEMENT_H
+#define WODEN_MSG_REG_ELEMENT_H
+
+/**
+ * @file woden_msg_ref_element.h
+ * @brief Axis2 Interface Msg Reference Element Interface
+ * This interface represents the &lt;input&gt; and &lt;output&gt; 
+ * child elements of interface operation. 
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <axis2_array_list.h>
+#include <woden.h>
+#include <woden_documentable_element.h>
+#include <woden_configurable_element.h>
+#include <woden_nested_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_msg_ref_element woden_msg_ref_element_t;
+typedef struct woden_msg_ref_element_ops woden_msg_ref_element_ops_t;
+typedef union woden_msg_ref_element_base woden_msg_ref_element_base_t;
+
+/** @defgroup woden_msg_ref_element Interface Msg Reference Element
+  * @ingroup axis2_interface
+  * @{
+  */
+
+struct woden_msg_ref_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *msg_ref_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *msg_ref_element,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_msg_label) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            void *msg_label);
+
+    void *(AXIS2_CALL *
+    get_msg_label) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    set_msg_content_model) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            axis2_char_t *nm_token);
+    
+    axis2_char_t *(AXIS2_CALL *
+    get_msg_content_model) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+ 
+    /**
+     * Set the QName that represents the 'element' attribute of the interface 
+     * operation &lt;input&gt; or &lt;output&gt; element. This identifies a Schema 
+     * element declaration.
+     * 
+     * @param qname the QName that identifies a Schema element declaration
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_element_qname) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            axis2_qname_t *element);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_element_qname) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+    /**
+     * Returns the Schema element declaration identified by the QName in the 'element' 
+     * attribute of the interface operation &lt;input&gt; or &lt;output&gt;  element. 
+     * If this QName does not resolve to an element declaration in a schema that is visible 
+     * to the containing WSDL description, null will be returned by this method. 
+     * To be visible, the Schema must have been correctly imported or inlined within 
+     * the &lt;types&gt; element.
+     * 
+     * @return the XmlSchemaElement identified by the 'element' attribute
+     */
+    void *(AXIS2_CALL *
+    get_element) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_direction) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            void *dir);
+
+    void *(AXIS2_CALL *
+    get_direction) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+
+};
+
+union woden_msg_ref_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_configurable_element_t configurable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_msg_ref_element
+{
+    woden_msg_ref_element_base_t base;
+    woden_msg_ref_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_msg_ref_element_t * AXIS2_CALL
+woden_msg_ref_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_msg_ref_element_resolve_methods(
+        woden_msg_ref_element_t *msg_ref_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_MSG_REG_ELEMENT_FREE(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         free (msg_ref_element, env))
+
+#define WODEN_MSG_REG_ELEMENT_TYPE(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         type (msg_ref_element, env))
+
+#define WODEN_MSG_REG_ELEMENT_SET_MSG_LABEL(msg_ref_element, env, msg_label) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         set_msg_label (msg_ref_element, env, msg_label))
+
+#define WODEN_MSG_REG_ELEMENT_GET_MSG_LABEL(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+        get_msg_label  (msg_ref_element, env))
+
+#define WODEN_MSG_REG_ELEMENT_SET_MSG_CONTENT_MODEL(msg_ref_element, env, nm_token) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         set_msg_content_model (msg_ref_element, env, nm_token))
+
+#define WODEN_MSG_REG_ELEMENT_GET_MSG_CONTENT_MODEL(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         get_msg_content_model (msg_ref_element, env))
+
+#define WODEN_MSG_REG_ELEMENT_SET_ELEMENT_QNAME(msg_ref_element, env, element) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+        set_element_qname  (msg_ref_element, env, element))
+
+#define WODEN_MSG_REG_ELEMENT_GET_ELEMENT_QNAME(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+        get_element_qname  (msg_ref_element, env))
+
+#define WODEN_MSG_REG_ELEMENT_GET_ELEMENT(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+        get_element  (msg_ref_element, env))
+
+#define WODEN_MSG_REG_ELEMENT_SET_DIRECTION(msg_ref_element, env, dir) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         set_direction (msg_ref_element, env, dir))
+
+#define WODEN_MSG_REG_ELEMENT_GET_DIRECTION(msg_ref_element, env) \
+      (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
+         get_direction (msg_ref_element, env))
+
+
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_MSG_REG_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_nc_name.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_nc_name.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_nc_name.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_nc_name.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_NC_NAME_H
+#define WODEN_NC_NAME_H
+
+/**
+ * @file woden_nc_name.h
+ * @brief Axis2 NC Name Interface
+ * This class represents the data type NCName use for XML non-colonized names.
+ * It is based on the class of the same name in Apache Axis.
+ * 
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_uri.h>
+#include <woden.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_nc_name woden_nc_name_t;
+typedef struct woden_nc_name_ops woden_nc_name_ops_t;
+struct axis2_xml_nc_name;
+
+/** @defgroup woden_nc_name NC Name
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_nc_name_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *nc_name,
+            const axis2_env_t *env);
+ 
+    axis2_bool_t (AXIS2_CALL *
+    is_valid) (
+            void *nc_name,
+            const axis2_env_t *env,
+            axis2_char_t *st_value);
+
+    /**
+     * 
+     * @param value String representing an NCName
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_value) (
+            void *nc_name,
+            const axis2_env_t *env,
+            axis2_char_t *value);
+
+    axis2_char_t *(AXIS2_CALL *
+    to_string) (
+            void *nc_name,
+            const axis2_env_t *env);
+
+   
+};
+
+struct woden_nc_name
+{
+    woden_nc_name_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_nc_name_t * AXIS2_CALL
+woden_nc_name_create(
+        const axis2_env_t *env,
+        axis2_char_t *value);
+
+#define WODEN_NC_NAME_FREE(nc_name, env) \
+      (((woden_nc_name_t *) nc_name)->ops->free (nc_name, env))
+
+#define WODEN_NC_NAME_IS_VALID(nc_name, env, st_value) \
+      (((woden_nc_name_t *) nc_name)->ops-> \
+         is_valid (nc_name, env, st_value))
+
+#define WODEN_NC_NAME_SET_VALUE(nc_name, env, value) \
+      (((woden_nc_name_t *) nc_name)->ops-> \
+         set_value (nc_name, env, value))
+
+#define WODEN_NC_NAME_TO_STRING(nc_name, env) \
+      (((woden_nc_name_t *) nc_name)->ops-> \
+         to_string (nc_name, env))
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_NC_NAME_H */

Added: webservices/axis2/trunk/c/woden/include/woden_nested_component.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_nested_component.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_nested_component.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_nested_component.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_NESTED_COMPONENT_H
+#define WODEN_NESTED_COMPONENT_H
+
+/**
+ * @file woden_nested_component.h
+ * @brief Axis2 Nested Component Interface
+ * Components which are nested within a 'top-level' component will extend
+ * this interface. These are Property, Feature and the sub components of
+ * Interface, Binding and Service. 
+ * <p>
+ * The components which are not nested are Description, Interface, 
+ * Binding, Service, ElementDeclaration and TypeDefinition.
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <woden.h>
+#include <woden_wsdl_component.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_nested_component woden_nested_component_t;
+typedef struct woden_nested_component_ops woden_nested_component_ops_t;
+struct woden_component_exts;
+
+/** @defgroup woden_nested_component Nested Component
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_nested_component_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *nested_component,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_nested_component_free) (
+            void *nested_component,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *nested_component,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_parent) (
+            void *nested_component,
+            const axis2_env_t *env);
+
+};
+
+struct woden_nested_component
+{
+    woden_wsdl_component_t wsdl_component;
+    woden_nested_component_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+woden_nested_component_resolve_methods(
+        woden_nested_component_t *nested_component,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_NESTED_COMPONENT_FREE(nested_component, env) \
+      (((woden_nested_component_t *) nested_component)->ops->\
+         free (nested_component, env))
+
+#define WODEN_NESTED_COMPONENT_TO_NESTED_COMPONENT_FREE(nested_component, \
+        env) \
+      (((woden_nested_component_t *) nested_component)->ops->\
+         to_nested_component_free (nested_component, env))
+
+#define WODEN_NESTED_COMPONENT_TYPE(nested_component, env) \
+      (((woden_nested_component_t *) nested_component)->ops->\
+         type (nested_component, env))
+
+#define WODEN_NESTED_COMPONENT_GET_PARENT(\
+        nested_component, env) \
+      (((woden_nested_component_t *) nested_component)->ops->\
+         get_parent(nested_component, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_NESTED_COMPONENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_nested_configurable.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_nested_configurable.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_nested_configurable.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_nested_configurable.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_NESTED_CONFIGURABLE_H
+#define WODEN_NESTED_CONFIGURABLE_H
+
+/**
+ * @file woden_nested_configurable.h
+ * @brief Axis2 Nested Configurable Interface
+ * This abstract superclass implements support for accessing or
+ * setting the 'parent' of a nested, configurable WSDL component.
+ * All such classes will directly or indirectly extend this abstract 
+ * class.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_nested_component.h>
+#include <woden_nested_element.h>
+#include <woden_configurable.h>
+
+/** @defgroup woden_nested_configurable Nested Configurable
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_nested_configurable_base woden_nested_configurable_base_t;
+typedef struct woden_nested_configurable woden_nested_configurable_t;
+typedef struct woden_nested_configurable_ops woden_nested_configurable_ops_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_nested_configurable_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *nested_configurable,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_nested_configurable_free) (
+            void *nested_configurable,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *nested_configurable,
+            const axis2_env_t *env);
+    
+    /**
+     * @return the base implementation class
+     */
+    struct woden_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *nested_configurable,
+            const axis2_env_t *env);
+
+};
+
+union woden_nested_configurable_base
+{
+    woden_configurable_t configurable;
+    woden_nested_element_t nested_element;
+    woden_nested_component_t nested_component;
+};
+
+struct woden_nested_configurable
+{
+    woden_nested_configurable_base_t base;
+    woden_nested_configurable_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_nested_configurable_t * AXIS2_CALL
+woden_nested_configurable_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN woden_nested_configurable_t * AXIS2_CALL
+woden_nested_configurable_to_nested_element(
+        void *nested_configurable,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_nested_configurable_resolve_methods(
+        woden_nested_configurable_t *nested_configurable,
+        const axis2_env_t *env,
+        woden_nested_configurable_t *nested_configurable_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define WODEN_NESTED_CONFIGURABLE_FREE(nested_configurable, env) \
+      (((woden_nested_configurable_t *) nested_configurable)->ops->\
+         free(nested_configurable, env))
+
+#define WODEN_NESTED_CONFIGURABLE_TO_NESTED_CONFIGURABLE_FREE(nested_configurable, env) \
+      (((woden_nested_configurable_t *) nested_configurable)->ops->\
+         to_nested_configurable_free(nested_configurable, env))
+
+#define WODEN_NESTED_CONFIGURABLE_SUPER_OBJS(nested_configurable, env) \
+      (((woden_nested_configurable_t *) nested_configurable)->ops->\
+         super_objs(nested_configurable, env))
+
+#define WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(nested_configurable, env) \
+      (((woden_nested_configurable_t *) nested_configurable)->ops->\
+         get_base_impl(nested_configurable, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_NESTED_CONFIGURABLE_H */

Added: webservices/axis2/trunk/c/woden/include/woden_nested_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_nested_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_nested_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_nested_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_NESTED_ELEMENT_H
+#define WODEN_NESTED_ELEMENT_H
+
+/**
+ * @file woden_nested_element.h
+ * @brief Axis2 Nested Element Interface
+ * Elements which are nested within a 'top-level' WSDL element will
+ * extend this interface. These are &lt;feature&gt;, &lt;property&gt;
+ * and the child elements of &lt;interface&gt;, &lt;binding&gt; and
+ * &lt;service&gt;.  
+ * <p>
+ * The elements which are not nested are &lt;description&gt;, 
+ * &lt;import&gt;, &lt;include&gt;, &lt;types&gt;, &lt;interface&gt;, 
+ * &lt;binding&gt; and &lt;service&gt;.
+ * 
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <woden.h>
+#include <woden_wsdl_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_nested_element woden_nested_element_t;
+typedef struct woden_nested_element_ops woden_nested_element_ops_t;
+struct woden_wsdl_element;
+
+/** @defgroup woden_nested_element Nested Element
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_nested_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *nested_el,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *nested_el,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_parent_element) (
+            void *nested_el,
+            const axis2_env_t *env,
+            struct woden_wsdl_element *parent);
+
+    void *(AXIS2_CALL *
+    get_parent_element) (
+            void *nested_el,
+            const axis2_env_t *env);
+
+};
+
+struct woden_nested_element
+{
+    woden_wsdl_element_t wsdl_element;
+    woden_nested_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods*****************************/
+axis2_status_t AXIS2_CALL
+woden_nested_element_resolve_methods(
+        woden_nested_element_t *nested_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_NESTED_ELEMENT_FREE(nested_el, env) \
+      (((woden_nested_element_t *) nested_el)->ops->\
+         free (nested_el, env))
+
+#define WODEN_NESTED_ELEMENT_TYPE(nested_el, env) \
+      (((woden_nested_element_t *) nested_el)->ops->\
+         type (nested_el, env))
+
+#define WODEN_NESTED_ELEMENT_SET_PARENT_ELEMENT(nested_el, env, parent) \
+      (((woden_nested_element_t *) nested_el)->ops->\
+         set_parent_element(nested_el, env, parent))
+
+#define WODEN_NESTED_ELEMENT_GET_PARENT_ELEMENT(nested_el, env) \
+      (((woden_nested_element_t *) nested_el)->ops->\
+         get_parent_element(nested_el, env))
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_NESTED_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_property.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_property.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_property.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_property.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_PROPERTY_H
+#define WODEN_PROPERTY_H
+
+/**
+ * @file woden_property.h
+ * @brief Axis2 Property Interface
+ * An abstract superclass for WSDL 2.0 elements which can have &lt;documentation&gt; 
+ * child elements. That is, all WSDL 2.0 elements except the &lt;documentation&gt; 
+ * element itself. Defines accessor methods for manipulating DocumentationElements.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_property_element.h>
+#include <woden_wsdl_obj.h>
+#include <woden_documentable.h>
+#include <woden_nested_component.h>
+
+/** @defgroup woden_property Property
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_property_base woden_property_base_t;
+typedef struct woden_property woden_property_t;
+typedef struct woden_property_ops woden_property_ops_t;
+struct woden_documentation_element;
+struct woden_wsdl_component;
+struct woden_documentable;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_property_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *property,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *property,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *property,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_documentable *(AXIS2_CALL *
+    get_base_impl) (
+            void *property,
+            const axis2_env_t *env);
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_ref) (
+            void *property,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_value_constraint) (
+            void *property,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_value) (
+            void *property,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_parent) (
+            void *property,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    to_element) (
+            void *property,
+            const axis2_env_t *env);
+
+    /* ****************************************************************************
+     * Non-API implementation methods
+     * ***************************************************************************/
+    axis2_status_t (AXIS2_CALL *
+    set_value_constraint) (
+            void *property,
+            const axis2_env_t *env,
+            void *type_def);
+
+    axis2_status_t (AXIS2_CALL *
+    set_types) (
+            void *property,
+            const axis2_env_t *env,
+            void *types);
+
+};
+
+union woden_property_base
+{
+    woden_documentable_t documentable;
+    woden_property_element_t property_element;
+    woden_nested_component_t nested_component;
+};
+
+struct woden_property
+{
+    woden_property_base_t base;
+    woden_property_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_property_element(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_nested_element(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_documentable_element(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_documentable(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_wsdl_obj(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_nested_component(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_wsdl_component(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_element_extensible(
+        void *property,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_property_t * AXIS2_CALL
+woden_property_to_attr_extensible(
+        void *property,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_property_resolve_methods(
+        woden_property_t *property,
+        const axis2_env_t *env,
+        woden_property_t *property_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_PROPERTY_FREE(property, env) \
+      (((woden_property_t *) property)->ops->free(property, env))
+
+#define WODEN_PROPERTY_SUPER_OBJS(property, env) \
+      (((woden_property_t *) property)->ops->super_objs(property, env))
+
+#define WODEN_PROPERTY_TYPE(property, env) \
+      (((woden_property_t *) property)->ops->type(property, env))
+
+#define WODEN_PROPERTY_GET_BASE_IMPL(property, env) \
+      (((woden_property_t *) property)->ops->get_base_impl(property, env))
+
+#define WODEN_PROPERTY_GET_REF(property, env) \
+      (((woden_property_t *) property)->\
+         get_ref(property, env))
+
+#define WODEN_PROPERTY_GET_VALUE_CONSTRAINT(property, env) \
+      (((woden_property_t *) property)->\
+         get_value_constraint(property, env))
+
+#define WODEN_PROPERTY_GET_VALUE(property, env) \
+      (((woden_property_t *) property)->\
+         get_value(property, env))
+
+#define WODEN_PROPERTY_GET_PARENT(property, env) \
+      (((woden_property_t *) property)->ops->\
+         get_parent(property, env))
+
+#define WODEN_PROPERTY_TO_ELEMENT(property, env) \
+      (((woden_property_t *) property)->ops->\
+         to_element(property, env))
+
+#define WODEN_PROPERTY_SET_VALUE_CONSTRAINT(property, env, type_def) \
+      (((woden_property_t *) property)->ops->\
+         set_value_constraint(property, env, type_def))
+
+#define WODEN_PROPERTY_SET_TYPES(property, env, types) \
+      (((woden_property_t *) property)->ops->\
+         set_types(property, env, types))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_PROPERTY_H */

Added: webservices/axis2/trunk/c/woden/include/woden_property_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_property_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_property_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_property_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,229 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_PROPERTY_ELEMENT_H
+#define WODEN_PROPERTY_ELEMENT_H
+
+/**
+ * @file woden_property_element.h
+ * Represents the &lt;property&gt; element and its child elements;
+ * &lt;documentation&gt;, 
+ * &lt;value&gt; or &lt;constraint&gt; and
+ * any extension elements.
+ * <p>
+ * A property may have a value or a constraint but not both. If it
+ * has a value, the &lt;constraint&gt; element may only contain the
+ * the NM Token <code>#value</code>, in which case 
+ * <code>has_value_token()</code> will return true
+ * and <code>get_constraint</code> will return null.
+ * @brief Axis2 Property Element Interface
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_generic_obj.h>
+#include <axis2_uri.h>
+#include <woden.h>
+#include <woden_documentable_element.h>
+#include <woden_nested_element.h>
+#include <woden.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_property_element woden_property_element_t;
+typedef struct woden_property_element_ops woden_property_element_ops_t;
+typedef union woden_property_element_base woden_property_element_base_t;
+struct xml_schema_type;
+
+/** @defgroup woden_property_element Property Element
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_property_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *doc_el,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *doc_el,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_ref) (void *doc_el,
+            const axis2_env_t *env,
+            axis2_uri_t *uri);
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_ref) (void *doc_el,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_value) (void *doc_el,
+            const axis2_env_t *env,
+            axis2_generic_obj_t *value);
+
+    axis2_generic_obj_t *(AXIS2_CALL *
+    get_value) (void *doc_el,
+            const axis2_env_t *env);
+
+    /**
+     * Set the QName represented by the &lt;constraint&gt; element within the
+     * &lt;property&gt; element. This QName identifies a global type definition 
+     * from a schema inlined or imported within the &lt;types&gt; element. 
+     * Note that the use of the NMToken <code>#value</code> 
+     * as the constraint, instead of a QName, is captured using the 
+     * <code>set_has_value_token</code> method.
+     */ 
+    axis2_status_t (AXIS2_CALL *
+    set_constraint_qname) (
+            void *property_el,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+   
+    axis2_qname_t *(AXIS2_CALL *
+    get_constraint_qname) (
+            void *property_el,
+            const axis2_env_t *env);
+
+    /**
+     * Returns the Schema type definition identified by the QName in the &lt;
+     * constraint&gt; element within the &lt;property&gt; element.
+     * If this QName does not resolve to an type definition in a schema that 
+     * is visible to the containing WSDL description, null will be returned by 
+     * this method. To be visible, the Schema must have been correctly imported 
+     * or inlined within the &lt;types&gt; element.
+     * 
+     * @return the Xml Schema Type identified by the &lt;constraint&gt; element
+     */
+    struct xml_schema_type *(AXIS2_CALL *
+    get_constraint) (
+            void *property_el,
+            const axis2_env_t *env);
+
+    /**
+     * Set to true if &lt;constraint&gt; specifies the NMToken <code>"#value"
+     * </code> rather than a QName, indicating that this property specifies a 
+     * value rather than a constraint.
+     * Set to false if &lt;constraint&gt; does not specify the NMToken "#value", 
+     * or if it is omitted. 
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_has_value_token) (
+            void *property_el,
+            const axis2_env_t *env,
+            axis2_bool_t b);
+    
+    /**
+     * Returns true if &lt;constraint&gt; specifies the NMToken "#value" rather 
+     * than a QName, indicating that this property specifies a value rather than 
+     * a constraint. Returns false if &lt;constraint&gt; does not specify the 
+     * NMToken "#value", or if it is omitted.
+     */ 
+    axis2_bool_t (AXIS2_CALL * 
+    has_value_token) (
+            void *property_el,
+            const axis2_env_t *env);
+
+};
+
+union woden_property_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_property_element
+{
+    woden_property_element_base_t base;
+    woden_property_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods*****************************/
+axis2_status_t AXIS2_CALL
+woden_property_element_resolve_methods(
+        woden_property_element_t *property_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_PROPERTY_ELEMENT_FREE(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         free (doc_el, env))
+
+#define WODEN_PROPERTY_ELEMENT_TYPE(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         type (doc_el, env))
+
+#define WODEN_PROPERTY_ELEMENT_SET_REF(doc_el, env, uri) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         set_ref(doc_el, env, uri))
+
+#define WODEN_PROPERTY_ELEMENT_GET_REF(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         get_value(doc_el, env))
+
+#define WODEN_PROPERTY_ELEMENT_SET_VALUE(doc_el, env, value) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         set_value(doc_el, env, value))
+
+#define WODEN_PROPERTY_ELEMENT_GET_VALUE(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         get_value(doc_el, env))
+
+
+#define WODEN_PROPERTY_ELEMENT_SET_CONSTRAINT_QNAME(doc_el, env, qname) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         set_constraint_qname(doc_el, env, qname))
+
+#define WODEN_PROPERTY_ELEMENT_GET_CONSTRAINT_QNAME(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         get_constraint_qname(doc_el, env))
+
+#define WODEN_PROPERTY_ELEMENT_GET_CONSTRAINT(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         get_constraint(doc_el, env))
+
+#define WODEN_PROPERTY_ELEMENT_SET_HAS_VALUE_TOKEN(doc_el, env, b) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         set_has_value_token(doc_el, env, b))
+
+#define WODEN_PROPERTY_ELEMENT_HAS_VALUE_TOKEN(doc_el, env) \
+      (((woden_property_element_t *) doc_el)->ops->\
+         has_value_token(doc_el, env))
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_PROPERTY_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_qname_attr.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_qname_attr.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_qname_attr.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_qname_attr.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,155 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_QNAME_ATTR_H
+#define WODEN_QNAME_ATTR_H
+
+/**
+ * @file woden_qname_attr.h
+ * @brief Axis2 Qname Attribute Interface
+ *          This class represents XML attribute information items of type xs:QName.
+ */
+
+#include <woden.h>
+#include <woden_xml_attr.h>
+
+/** @defgroup woden_qname_attr Qname Attribute
+  * @ingroup woden
+  * @{
+  */
+
+typedef struct woden_qname_attr woden_qname_attr_t;
+typedef struct woden_qname_attr_ops woden_qname_attr_ops_t;
+struct axiom_element;
+struct axiom_node;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_qname_attr_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *qname_attr,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_qname_attr_free) (
+            void *qname_attr,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *qname_attr,
+            const axis2_env_t *env);
+
+    /**
+     * @return the base implementation class
+     */
+    woden_xml_attr_t *(AXIS2_CALL *
+    get_base_impl) (
+            void *qname_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  QNameAttr interface declared methods 
+     * ************************************************************/
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *qname_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  Non-API implementation methods 
+     * ************************************************************/
+
+    /*
+     * Convert a string of type xs:QName to a axis2_qname_t.
+     * A a null argument will return a null value.
+     * Any conversion error will be reported and a null value will be returned.
+     */
+    void *(AXIS2_CALL *
+    convert) (
+            void *qname_attr,
+            const axis2_env_t *env,
+            struct axiom_element *owner_el,
+            struct axiom_node *owner_node,
+            axis2_char_t *attr_value);
+
+  
+};
+
+struct woden_qname_attr
+{
+    woden_xml_attr_t base;
+    woden_qname_attr_ops_t *ops;
+};
+
+/*
+ * TODO This constructor is not used for extension attributes, but may be useful if
+ * parsing of native WSDL attributes is changed to use the XMLAttr interface.
+ */
+AXIS2_EXTERN woden_qname_attr_t * AXIS2_CALL
+woden_qname_attr_create(
+        const axis2_env_t *env,
+        struct axiom_element *owner_el,
+        struct axiom_node *owner_node,
+        axis2_qname_t *attr_type,
+        axis2_char_t *attr_value);
+
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_qname_attr_resolve_methods(
+        woden_qname_attr_t *qname_attr,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_QNAME_ATTR_FREE(qname_attr, env) \
+      (((woden_qname_attr_t *) qname_attr)->ops->free(qname_attr, env))
+
+#define WODEN_QNAME_ATTR_TO_QNAME_ATTR_FREE(qname_attr, env) \
+      (((woden_qname_attr_t *) qname_attr)->ops->\
+         to_qname_attr_free(qname_attr, env))
+
+#define WODEN_QNAME_ATTR_TYPE(qname_attr, env) \
+      (((woden_qname_attr_t *) qname_attr)->ops->type(qname_attr, env))
+
+#define WODEN_QNAME_ATTR_GET_BASE_IMPL(qname_attr, env) \
+      (((woden_qname_attr_t *) qname_attr)->ops->get_base_impl(qname_attr, \
+                                                                        env))
+
+#define WODEN_QNAME_ATTR_GET_QNAME(qname_attr, env) \
+      (((woden_qname_attr_t *) qname_attr)->ops->get_qname(qname_attr, \
+                                                                    env))
+
+#define WODEN_QNAME_ATTR_CONVERT(qname_attr, env) \
+      (((woden_qname_attr_t *) qname_attr)->ops->convert(qname_attr, \
+                                                                       env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_QNAME_ATTR_H */

Added: webservices/axis2/trunk/c/woden/include/woden_qname_list_attr.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_qname_list_attr.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_qname_list_attr.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_qname_list_attr.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,161 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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 WODEN_QNAME_LIST_ATTR_H
+#define WODEN_QNAME_LIST_ATTR_H
+
+/**
+ * @file woden_qname_list_attr.h
+ * @brief Axis2 QName List Attribute Interface
+ *          This class represents XML attribute information items of type 
+ *          xs:list of QNames.
+ */
+
+#include <woden.h>
+#include <woden_xml_attr.h>
+#include <axis2_array_list.h>
+
+/** @defgroup woden_qname_list_attr QName List Attribute
+  * @ingroup woden
+  * @{
+  */
+
+typedef struct woden_qname_list_attr woden_qname_list_attr_t;
+typedef struct woden_qname_list_attr_ops woden_qname_list_attr_ops_t;
+struct axiom_element;
+struct axiom_node;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_qname_list_attr_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *qname_list_attr,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_qname_list_attr_free) (
+            void *qname_list_attr,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *qname_list_attr,
+            const axis2_env_t *env);
+
+    /**
+     * @return the base implementation class
+     */
+    woden_xml_attr_t *(AXIS2_CALL *
+    get_base_impl) (
+            void *qname_list_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  QNameAttr interface declared methods 
+     * ************************************************************/
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_qnames) (
+            void *qname_list_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  Non-API implementation methods 
+     * ************************************************************/
+
+    /*
+     * Convert a string of type 'xs:list of QNames' to a java.xml.namespace.QName[].
+     * A a null argument will return a null value.
+     * If a QName string in the list causes a conversion error, it will be reported 
+     * and that QName will not appear in the array. Valid QName strings will still
+     * be converted, but the object will be marked invalid. If no QName strings can
+     * be converted, a null value will be returned.
+     */
+    void *(AXIS2_CALL *
+    convert) (
+            void *qname_list_attr,
+            const axis2_env_t *env,
+            struct axiom_element *owner_el,
+            struct axiom_node *owner_node,
+            axis2_char_t *attr_value);
+
+  
+};
+
+struct woden_qname_list_attr
+{
+    woden_xml_attr_t base;
+    woden_qname_list_attr_ops_t *ops;
+};
+
+/*
+ * TODO This constructor is not used for extension attributes, but may be useful if
+ * parsing of native WSDL attributes is changed to use the XMLAttr interface.
+ */
+AXIS2_EXTERN woden_qname_list_attr_t * AXIS2_CALL
+woden_qname_list_attr_create(
+        const axis2_env_t *env,
+        struct axiom_element *owner_el,
+        struct axiom_node *owner_node,
+        axis2_qname_t *attr_type,
+        axis2_char_t *attr_value);
+
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_qname_list_attr_resolve_methods(
+        woden_qname_list_attr_t *qname_list_attr,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_QNAME_LIST_ATTR_FREE(qname_list_attr, env) \
+      (((woden_qname_list_attr_t *) qname_list_attr)->ops->free(qname_list_attr, env))
+
+#define WODEN_QNAME_LIST_ATTR_TO_QNAME_LIST_ATTR_FREE(qname_list_attr, env) \
+      (((woden_qname_list_attr_t *) qname_list_attr)->ops->\
+         to_qname_list_attr_free(qname_list_attr, env))
+
+#define WODEN_QNAME_LIST_ATTR_TYPE(qname_list_attr, env) \
+      (((woden_qname_list_attr_t *) qname_list_attr)->ops->\
+         type(qname_list_attr, env))
+
+#define WODEN_QNAME_LIST_ATTR_GET_BASE_IMPL(qname_list_attr, env) \
+      (((woden_qname_list_attr_t *) qname_list_attr)->ops->\
+         get_base_impl(qname_list_attr, env))
+
+#define WODEN_QNAME_LIST_ATTR_GET_QNAMES(qname_list_attr, env) \
+      (((woden_qname_list_attr_t *) qname_list_attr)->ops->\
+         get_qnames(qname_list_attr, env))
+
+#define WODEN_QNAME_LIST_ATTR_CONVERT(qname_list_attr, env) \
+      (((woden_qname_list_attr_t *) qname_list_attr)->ops->\
+         convert(qname_list_attr, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_QNAME_LIST_ATTR_H */



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org