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 na...@apache.org on 2005/12/21 07:13:41 UTC

svn commit: r358221 [1/2] - in /webservices/axis2/trunk/c: include/ modules/xml/soap/src/

Author: nandika
Date: Tue Dec 20 22:13:14 2005
New Revision: 358221

URL: http://svn.apache.org/viewcvs?rev=358221&view=rev
Log:
some of soap faults implemented 

Added:
    webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_role.c
    webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_sub_code.c
    webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_text.c
    webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_value.c
Modified:
    webservices/axis2/trunk/c/include/axis2_soap.h
    webservices/axis2/trunk/c/include/axis2_soap_body.h
    webservices/axis2/trunk/c/include/axis2_soap_envelope.h
    webservices/axis2/trunk/c/include/axis2_soap_fault.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_code.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_detail.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_node.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_role.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_text.h
    webservices/axis2/trunk/c/include/axis2_soap_fault_value.h
    webservices/axis2/trunk/c/include/axis2_soap_header.h
    webservices/axis2/trunk/c/include/axis2_soap_header_block.h
    webservices/axis2/trunk/c/include/axis2_soap_message.h

Modified: webservices/axis2/trunk/c/include/axis2_soap.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap.h Tue Dec 20 22:13:14 2005
@@ -31,6 +31,16 @@
  * @ingroup axis2_soap 
  * @{
  */
+typedef enum soap_version
+{
+    AXIS2_SOAP_VERSION_NOT_SET = 0,
+    
+    AXIS2_SOAP11,
+    
+    AXIS2_SOAP12    
+}axis2_soap_version;
+
+
 
 /** soap 11 constants */
 

Modified: webservices/axis2/trunk/c/include/axis2_soap_body.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_body.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_body.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_body.h Tue Dec 20 22:13:14 2005
@@ -60,19 +60,32 @@
         axis2_status_t (AXIS2_CALL *free_fn)(axis2_soap_body_t *body,
                                              axis2_env_t **env);
         
-        axis2_soap_fault_t* (AXIS2_CALL *add_fault_with_error)(axis2_soap_body_t *body,
-                                                    axis2_env_t **env,
-                                                    axis2_char_t *error);
+        axis2_soap_fault_t* (AXIS2_CALL *add_fault_with_error)
+                                            (axis2_soap_body_t *body,
+                                             axis2_env_t **env,
+                                             axis2_char_t *error);
         
         axis2_bool_t (AXIS2_CALL *has_fault)(axis2_soap_body_t *body,
-                                              axis2_env_t **env);
+                                             axis2_env_t **env);
                                               
-        axis2_soap_fault_t* (AXIS2_CALL *get_fault)(axis2_soap_body_t *body,
-                                                    axis2_env_t **env);
+        axis2_soap_fault_t* (AXIS2_CALL *get_fault)
+                                            (axis2_soap_body_t *body,
+                                             axis2_env_t **env);
                                                       
-        axis2_status_t (AXIS2_CALL *add_fault_with_soap_fault)(axis2_soap_body_t *body,
-                                               axis2_env_t **env,
-                                               axis2_soap_fault_t *fault);
+        axis2_status_t (AXIS2_CALL *add_fault_with_soap_fault)
+                                            (axis2_soap_body_t *body,
+                                             axis2_env_t **env,
+                                             axis2_soap_fault_t *fault);
+                                             
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
+                                            (axis2_soap_body_t *body,
+                                             axis2_env_t **env);
+                                             
+        axis2_om_node_t* (AXIS2_CALL *set_base_node)
+                                            (axis2_soap_body_t *body,
+                                             axis2_env_t **env,
+                                             axis2_om_node_t *node);
+                                                                                          
                                                        
     };                                                      
 
@@ -100,7 +113,25 @@
 /** free soap_body */
 #define AXIS2_SOAP_BODY_FREE(body , env) \
         ((body)->ops->free_fn(body, env))
-
+        
+#define AXIS2_SOAP_BODY_ADD_FAULT_WITH_ERROR(boby, env, error) \
+        ((body)->ops->add_fault_with_error(body, env, error))
+        
+#define AXIS2_SOAP_BODY_HAS_FAULT(body, env) \
+        ((body)->ops->has_fault(body, env))
+        
+#define AXIS2_SOAP_BODY_GET_FAULT(body, env) \
+        ((body)->ops->get_fault(body, env))
+        
+#define AXIS2_SOAP_BODY_ADD_SOAP_FAULT_WITH_SOAP_FAULT(body, env, fault) \
+        ((body)->ops->add_fault_with_soap_fault(body, env, fault))
+        
+#define AXIS2_SOAP_BODY_GET_BASE_NODE(body, env) \
+        ((body)->ops->get_base_node(body, env))
+        
+#define AXIS2_SOAP_BODY_SET_BASE_NODE(body, env, node) \
+        ((body)->ops->set_base_node(body, env, node))
+                
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_envelope.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_envelope.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_envelope.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_envelope.h Tue Dec 20 22:13:14 2005
@@ -113,7 +113,7 @@
 axis2_soap_envelope_create (axis2_env_t **env);
 
 AXIS2_DECLARE(axis2_soap_envelope_t *)
-axis2_soap_envelope_create(axis2_env_t **env,
+axis2_soap_envelope_create_with_namespace(axis2_env_t **env,
                            axis2_om_namespace_t* ns);
                            
 /******************** Macros **************************************************/

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault.h Tue Dec 20 22:13:14 2005
@@ -126,12 +126,12 @@
         * This is only intended to be used by the builder,
         * do not use this function in other places
         */
-        axis2_status_t (AXIS2_CALL *set_base)(axis2_soap_fault_t *fault,
-                                              axis2_env_t **env,
-                                              axis2_om_node_t *node);
+        axis2_status_t (AXIS2_CALL *set_base_node)(axis2_soap_fault_t *fault,
+                                                   axis2_env_t **env,
+                                                   axis2_om_node_t *node);
                                               
-        axis2_om_node_t* (AXIS2_CALL *get_base)(axis2_soap_fault_t *fault,
-                                                axis2_env_t **env);                                                                                                                                                          
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)(axis2_soap_fault_t *fault,
+                                                     axis2_env_t **env);                                                                                                                                                          
                                          
     };
 
@@ -185,8 +185,8 @@
 #define AXIS2_SOAP_FAULT_SET_NODE(fault , env, node) \
         ((fault)->ops->set_node(fault, env, node)) 
         
-#define AXIS2_SOAP_FAULT_SET_BASE(fault, env, node) \
-        ((fault)->ops->set_base(fault, env, node))
+#define AXIS2_SOAP_FAULT_SET_BASE_NODE(fault, env, node) \
+        ((fault)->ops->set_base_node(fault, env, node))
         
 #define AXIS2_SOAP_FAULT_GET_CODE(fault , env) \
         ((fault)->ops->get_code(fault, env))
@@ -203,8 +203,8 @@
 #define AXIS2_SOAP_FAULT_GET_NODE(fault , env) \
         ((fault)->ops->get_node(fault, env)) 
         
-#define AXIS2_SOAP_FAULT_GET_BASE(fault, env) \
-        ((fault)->ops->get_base(fault, env))                       
+#define AXIS2_SOAP_FAULT_GET_BASE_NODE(fault, env) \
+        ((fault)->ops->get_base_node(fault, env))                       
 
 /** @} */
 

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_code.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_code.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_code.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_code.h Tue Dec 20 22:13:14 2005
@@ -73,12 +73,12 @@
                                     (axis2_soap_fault_code_t *fault_code,
                                      axis2_env_t **env);
                                      
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                                     (axis2_soap_fault_code_t *fault_code,
                                      axis2_env_t **env,
                                      axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
                                 (axis2_soap_fault_code_t *fault_code,
                                  axis2_env_t **env);
                                                                                                                 
@@ -127,11 +127,11 @@
 #define AXIS2_SOAP_FAULT_CODE_GET_SUB_CODE(fault_code , env) \
         ((fault_code)->ops->get_subcode(fault_code, env))        
         
-#define AXIS2_SOAP_FAULT_CODE_GET_BASE(fault_code, env) \
-        ((fault_code)->ops->get_base(fault_code, env))         
+#define AXIS2_SOAP_FAULT_CODE_GET_BASE_NODE(fault_code, env) \
+        ((fault_code)->ops->get_base_node(fault_code, env))         
 
-#define AXIS2_SOAP_FAULT_CODE_SET_BASE(fault_code, env, node) \
-        ((fault_code)->ops->set_base(fault_code, env, node))  
+#define AXIS2_SOAP_FAULT_CODE_SET_BASE_NODE(fault_code, env, node) \
+        ((fault_code)->ops->set_base_node(fault_code, env, node))  
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_detail.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_detail.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_detail.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_detail.h Tue Dec 20 22:13:14 2005
@@ -67,12 +67,12 @@
                                 (axis2_soap_fault_detail_t *fault_detail,
                                  axis2_env_t **env); 
 
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                                 (axis2_soap_fault_code_t *fault_code,
                                  axis2_env_t **env,
                                  axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
                                 (axis2_soap_fault_code_t *fault_code,
                                  axis2_env_t **env);
                                                                                                                 
@@ -120,11 +120,11 @@
 #define AXIS2_SOAP_FAULT_DETAIL_GET_ALL_DETAIL_ENTRIES(fault_detail, env) \
         ((fault_detail)->ops->get_all_detail_entries(fault_detail, env))                 
         
-#define AXIS2_SOAP_FAULT_DETAIL_GET_BASE(fault_detail, env) \
-        ((fault_detail)->ops->get_base(fault_detail, env))         
+#define AXIS2_SOAP_FAULT_DETAIL_GET_BASE_NODE(fault_detail, env) \
+        ((fault_detail)->ops->get_base_node(fault_detail, env))         
 
 #define AXIS2_SOAP_FAULT_DETAIL_SET_BASE(fault_detail, env, node) \
-        ((fault_detail)->ops->set_base(fault_detail, env, node))  
+        ((fault_detail)->ops->set_base_node(fault_detail, env, node))  
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_node.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_node.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_node.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_node.h Tue Dec 20 22:13:14 2005
@@ -64,12 +64,12 @@
                                     (axis2_soap_fault_node_t *fault_node,
                                      axis2_env_t **env);
                                      
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                                     (axis2_soap_fault_node_t *fault_node,
                                      axis2_env_t **env,
                                      axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
                                 (axis2_soap_fault_node_t *fault_node,
                                  axis2_env_t **env);
                                                                                                                 
@@ -112,11 +112,11 @@
 #define AXIS2_SOAP_FAULT_NODE_GET_VALUE(fault_node , env) \
         ((fault_node)->ops->get_node(fault_node, env)) 
         
-#define AXIS2_SOAP_FAULT_NODE_GET_BASE(fault_node, env) \
-        ((fault_node)->ops->get_base(fault_node, env))         
+#define AXIS2_SOAP_FAULT_NODE_GET_BASE_NODE(fault_node, env) \
+        ((fault_node)->ops->get_base_node(fault_node, env))         
 
 #define AXIS2_SOAP_FAULT_NODE_SET_BASE(fault_node, env, node) \
-        ((fault_node)->ops->set_base(fault_node, env, node))  
+        ((fault_node)->ops->set_base_node(fault_node, env, node))  
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h Tue Dec 20 22:13:14 2005
@@ -64,12 +64,12 @@
                                     (axis2_soap_fault_reason_t *fault_reason,
                                      axis2_env_t **env);
                                      
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                                     (axis2_soap_fault_reason_t *fault_reason,
                                      axis2_env_t **env,
                                      axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
                                 (axis2_soap_fault_reason_t *fault_reason,
                                  axis2_env_t **env);
                                                                                                                 
@@ -111,11 +111,11 @@
 #define AXIS2_SOAP_FAULT_REASON_GET_SOAP_TEXT(fault_reason , env) \
         ((fault_reason)->ops->get_soap_text(fault_reason, env)) 
         
-#define AXIS2_SOAP_FAULT_REASON_GET_BASE(fault_reason, env) \
-        ((fault_reason)->ops->get_base(fault_reason, env))         
+#define AXIS2_SOAP_FAULT_REASON_GET_BASE_NODE(fault_reason, env) \
+        ((fault_reason)->ops->get_base_node(fault_reason, env))         
 
 #define AXIS2_SOAP_FAULT_REASON_SET_BASE(fault_reason, env, node) \
-        ((fault_reason)->ops->set_base(fault_reason, env, node))  
+        ((fault_reason)->ops->set_base_node(fault_reason, env, node))  
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_role.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_role.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_role.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_role.h Tue Dec 20 22:13:14 2005
@@ -65,14 +65,23 @@
                                     (axis2_soap_fault_role_t *fault_role,
                                      axis2_env_t **env);
                                      
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                                     (axis2_soap_fault_role_t *fault_role,
                                      axis2_env_t **env,
                                      axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
-                                (axis2_soap_fault_role_t *fault_role,
-                                 axis2_env_t **env);
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
+                                    (axis2_soap_fault_role_t *fault_role,
+                                     axis2_env_t **env);
+                                 
+        int (AXIS2_CALL *get_soap_version)
+                                    (axis2_soap_fault_role_t *fault_role,
+                                     axis2_env_t **env);
+                                     
+        int (AXIS2_CALL *set_soap_version)
+                                    (axis2_soap_fault_role_t *fault_role,
+                                     axis2_env_t **env,
+                                     int soap_version);                                                                      
                                                                                                                 
     };      
 
@@ -93,7 +102,8 @@
     */
 AXIS2_DECLARE(axis2_soap_fault_role_t *)
 axis2_soap_fault_role_create_with_parent(axis2_env_t **env,
-                            axis2_soap_fault_t *fault);
+                            axis2_soap_fault_t *fault,
+                            axis2_bool_t extract_ns_form_parent);
                             
 
 AXIS2_DECLARE(axis2_soap_fault_role_t *)
@@ -112,11 +122,18 @@
 #define AXIS2_SOAP_FAULT_ROLE_GET_VALUE(fault_role , env) \
         ((fault_role)->ops->get_role_value(fault_role, env)) 
         
-#define AXIS2_SOAP_FAULT_ROLE_GET_BASE(fault_role, env) \
-        ((fault_role)->ops->get_base(fault_role, env))         
+#define AXIS2_SOAP_FAULT_ROLE_GET_BASE_NODE(fault_role, env) \
+        ((fault_role)->ops->get_base_node(fault_role, env))         
 
 #define AXIS2_SOAP_FAULT_ROLE_SET_BASE(fault_role, env, node) \
-        ((fault_role)->ops->set_base(fault_role, env, node))  
+        ((fault_role)->ops->set_base_node(fault_role, env, node)) 
+
+#define AXIS2_SOAP_FAULT_ROLE_GET_SOAP_VRESION(fault_role, env) \
+        ((fault_role)->ops->get_soap_version(fault_role, env)) 
+
+#define AXIS2_SOAP_FAULT_ROLE_SET_SOAP_VRESION(fault_role, env, version) \
+        ((fault_role)->ops->set_soap_version(fault_role, env, version))        
+                
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h Tue Dec 20 22:13:14 2005
@@ -53,8 +53,8 @@
         */
 
         axis2_status_t (AXIS2_CALL *free_fn)
-                            (axis2_soap_fault_sub_code_t *fault_sub_code,
-                             axis2_env_t **env);
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);
                                      
         axis2_status_t (AXIS2_CALL *set_value)
                              (axis2_soap_fault_sub_code_t *fault_sub_code,
@@ -62,26 +62,35 @@
                               axis2_soap_fault_value_t *fault_sub_code_val);
 
         axis2_status_t (AXIS2_CALL *set_sub_code)
-                            (axis2_soap_fault_sub_code_t *fault_sub_code,
-                             axis2_env_t **env,
-                             axis2_soap_fault_sub_code_t *fault_subcode);                                                                         
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_soap_fault_sub_code_t *fault_subcode);                                                                         
 
         axis2_soap_fault_sub_code_t* (AXIS2_CALL *get_sub_code)                                         
-                            (axis2_soap_fault_sub_code_t *fault_sub_code,
-                             axis2_env_t **env);
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);
                                      
         axis2_soap_fault_value_t* (AXIS2_CALL *get_value)                                         
-                            (axis2_soap_fault_sub_code_t *fault_sub_code,
-                             axis2_env_t **env);
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);
                                      
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                              (axis2_soap_fault_sub_code_t *fault_sub_code,
                               axis2_env_t **env,
                               axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
-                                (axis2_soap_fault_sub_code_t *fault_sub_code,
-                                 axis2_env_t **env);
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);
+                                 
+        int (AXIS2_CALL *get_soap_version)
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env); 
+                              
+        int (AXIS2_CALL *set_soap_version)
+                        (axis2_soap_fault_sub_code_t *fault_sub_code,
+                         axis2_env_t **env,
+                         int soap_version);                                                                                           
                                                                                                                 
     };      
 
@@ -108,6 +117,8 @@
 AXIS2_DECLARE(axis2_soap_fault_sub_code_t *)
 axis2_soap_fault_sub_code_create(axis2_env_t **env);
 
+                                                                   
+
 /******************** Macros **************************************************/
     
     
@@ -128,16 +139,22 @@
 #define AXIS2_SOAP_FAULT_SUB_CODE_GET_SUB_CODE(fault_sub_code , env) \
         ((fault_sub_code)->ops->get_subcode(fault_sub_code, env))        
         
-#define AXIS2_SOAP_FAULT_SUB_CODE_GET_BASE(fault_sub_code, env) \
-        ((fault_sub_code)->ops->get_base(fault_sub_code, env))         
+#define AXIS2_SOAP_FAULT_SUB_CODE_GET_BASE_NODE(fault_sub_code, env) \
+        ((fault_sub_code)->ops->get_base_node(fault_sub_code, env))         
+
+#define AXIS2_SOAP_FAULT_SUB_CODE_SET_BASE_NODE(fault_sub_code, env, node) \
+        ((fault_sub_code)->ops->set_base_node(fault_sub_code, env, node))
+        
+#define AXIS2_SOAP_FAULT_SUB_CODE_GET_SOAP_VRESION(fault_sub_code, env) \
+        ((fault_sub_code)->ops->get_soap_version(fault_sub_code, env))
 
-#define AXIS2_SOAP_FAULT_SUB_CODE_SET_BASE(fault_sub_code, env, node) \
-        ((fault_sub_code)->ops->set_base(fault_sub_code, env, node))  
+#define AXIS2_SOAP_FAULT_SUB_CODE_SET_SOAP_VRESION(fault_sub_code, env) \
+        ((fault_sub_code)->ops->set_soap_version(fault_sub_code, env))        
+      
 /** @} */
 
 #ifdef __cplusplus
 }
 #endif
 
- 
- #endif /* AXIS2_SOAP_FAULT_SUB_CODE_H */
\ No newline at end of file
+#endif /* AXIS2_SOAP_FAULT_SUB_CODE_H */
\ No newline at end of file

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_text.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_text.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_text.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_text.h Tue Dec 20 22:13:14 2005
@@ -64,14 +64,23 @@
                                     (axis2_soap_fault_text_t *fault_text,
                                      axis2_env_t **env);
                                      
-        axis2_status_t (AXIS2_CALL *set_base)
+        axis2_status_t (AXIS2_CALL *set_base_node)
                                     (axis2_soap_fault_text_t *fault_text,
                                      axis2_env_t **env,
                                      axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
                                 (axis2_soap_fault_text_t *fault_text,
                                  axis2_env_t **env);
+                                 
+        int (AXIS2_CALL *get_soap_version)
+                                       (axis2_soap_fault_text_t *fault_text,
+                                        axis2_env_t **env);
+                                        
+        axis2_status_t (AXIS2_CALL *set_soap_version)
+                                       (axis2_soap_fault_text_t *fault_text,
+                                        axis2_env_t **env,
+                                        int soap_version);                                  
                                                                                                                 
     };      
 
@@ -98,6 +107,8 @@
 AXIS2_DECLARE(axis2_soap_fault_text_t *)
 axis2_soap_fault_text_create(axis2_env_t **env);
 
+                                     
+
 /******************** Macros **************************************************/
     
     
@@ -111,11 +122,17 @@
 #define AXIS2_SOAP_FAULT_TEXT_GET_LANG(fault_text , env) \
         ((fault_text)->ops->get_lang(fault_text, env)) 
         
-#define AXIS2_SOAP_FAULT_TEXT_GET_BASE(fault_text, env) \
-        ((fault_text)->ops->get_base(fault_text, env))         
+#define AXIS2_SOAP_FAULT_TEXT_GET_BASE_NODE(fault_text, env) \
+        ((fault_text)->ops->get_base_node(fault_text, env))         
 
 #define AXIS2_SOAP_FAULT_TEXT_SET_BASE(fault_text, env, node) \
-        ((fault_text)->ops->set_base(fault_text, env, node))  
+        ((fault_text)->ops->set_base_node(fault_text, env, node))
+        
+#define AXIS2_SOAP_FAULT_TEXT_GET_SOAP_VERSION(fault_text, env) \
+        ((fault_text)->ops->get_soap_version(fault_text, env))
+        
+#define AXIS2_SOAP_FAULT_TEXT_SET_SOAP_VERSION(fault_text, env, version) \
+        ((fault_text)->ops->set_soap_version(fault_text, env, version))
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_value.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_value.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_value.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_value.h Tue Dec 20 22:13:14 2005
@@ -52,17 +52,26 @@
         */
 
         axis2_status_t (AXIS2_CALL *free_fn)
-                                    (axis2_soap_fault_value_t *fault_value,
-                                     axis2_env_t **env);
+                            (axis2_soap_fault_value_t *fault_value,
+                             axis2_env_t **env);
 
-        axis2_status_t (AXIS2_CALL *set_base)
-                                    (axis2_soap_fault_value_t *fault_value,
-                                     axis2_env_t **env,
-                                     axis2_om_node_t *node);
+        axis2_status_t (AXIS2_CALL *set_base_node)
+                             (axis2_soap_fault_value_t *fault_value,
+                              axis2_env_t **env,
+                              axis2_om_node_t *node);
     
-        axis2_om_node_t* (AXIS2_CALL *get_base)
-                                (axis2_soap_fault_value_t *fault_value,
-                                 axis2_env_t **env);
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
+                             (axis2_soap_fault_value_t *fault_value,
+                              axis2_env_t **env);
+                              
+        int (AXIS2_CALL *get_soap_version)
+                             (axis2_soap_fault_value_t *fault_value,
+                              axis2_env_t **env);
+                              
+        axis2_status_t (AXIS2_CALL *set_soap_version)
+                             (axis2_soap_fault_value_t *fault_value,
+                              axis2_env_t **env,
+                              int soap_version);                                                              
                                                                                                                 
     };      
 
@@ -92,6 +101,8 @@
 AXIS2_DECLARE(axis2_soap_fault_value_t *)
 axis2_soap_fault_value_create(axis2_env_t **env);
 
+                             
+
 /******************** Macros **************************************************/
     
     
@@ -99,11 +110,17 @@
 #define AXIS2_SOAP_FAULT_VALUE_FREE(fault_value , env) \
         ((fault_value)->ops->free_fn(fault_value, env))
         
-#define AXIS2_SOAP_FAULT_VALUE_GET_BASE(fault_value, env) \
-        ((fault_value)->ops->get_base(fault_value, env))         
+#define AXIS2_SOAP_FAULT_VALUE_GET_BASE_NODE(fault_value, env) \
+        ((fault_value)->ops->get_base_node(fault_value, env))         
 
-#define AXIS2_SOAP_FAULT_VALUE_SET_BASE(fault_value, env, node) \
-        ((fault_value)->ops->set_base(fault_value, env, node))  
+#define AXIS2_SOAP_FAULT_VALUE_SET_BASE_NODE(fault_value, env, node) \
+        ((fault_value)->ops->set_base_node(fault_value, env, node)) 
+        
+#define AXIS2_SOAP_FAULT_VALUE_GET_SOAP_VERSION(fault_value, env) \
+        ((fault_value)->ops->get_soap_version(fault_value, env)) 
+        
+#define AXIS2_SOAP_FAULT_VALUE_SET_SOAP_VERSION(fault_value, env, version) \
+        ((fault_value)->ops->set_soap_version(fault_value, env, version))                
 /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_soap_header.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_header.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_header.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_header.h Tue Dec 20 22:13:14 2005
@@ -103,11 +103,11 @@
         * This is only intended to be used by the builder,
         * do not use this function in other places
         */
-        axis2_status_t (AXIS2_CALL *set_base)(axis2_soap_header_t *header,
+        axis2_status_t (AXIS2_CALL *set_base_node)(axis2_soap_header_t *header,
                                               axis2_env_t **env,
                                               axis2_om_node_t *node);
                                               
-        axis2_om_node_t* (AXIS2_CALL *get_base)(axis2_soap_header_t *header,
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)(axis2_soap_header_t *header,
                                                 axis2_env_t **env);                                                                                                                                                          
                                          
     };
@@ -154,11 +154,11 @@
 #define AXIS2_SOAP_HEADER_EXTRACT_HEADER_BLOCKS(header, env) \
         ((header)->ops->extract_header_blocks(header, env))                        
 
-#define AXIS2_SOAP_HEADER_SET_BASE(header, env, node) \
-        ((header)->ops->set_base(header, env, node))
+#define AXIS2_SOAP_HEADER_SET_BASE_NODE(header, env, node) \
+        ((header)->ops->set_base_node(header, env, node))
         
-#define AXIS2_SOAP_HEADER_GET_BASE(header, env) \
-        ((header)->ops->get_base(header, env))                       
+#define AXIS2_SOAP_HEADER_GET_BASE_NODE(header, env) \
+        ((header)->ops->get_base_node(header, env))                       
 
 /** @} */
 

Modified: webservices/axis2/trunk/c/include/axis2_soap_header_block.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_header_block.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_header_block.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_header_block.h Tue Dec 20 22:13:14 2005
@@ -54,46 +54,55 @@
         * @return satus of the op. AXIS2_SUCCESS on success 
         *         else AXIS2_FAILURE
         */
-        axis2_status_t (AXIS2_CALL *free_fn)(axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env);
+        axis2_status_t (AXIS2_CALL *free_fn)
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env);
                                              
-        axis2_status_t (AXIS2_CALL *set_role)(axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env,
-                                             axis2_char_t *uri);  
+        axis2_status_t (AXIS2_CALL *set_role)
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env,
+                             axis2_char_t *uri);  
         
         axis2_status_t (AXIS2_CALL *set_must_understand_with_bool)
-                                            (axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env,
-                                             axis2_bool_t *must_understand);
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env,
+                             axis2_bool_t *must_understand);
+                             
         axis2_status_t (AXIS2_CALL *set_must_understand_with_string)
-                                            (axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env,
-                                             axis2_char_t *must_understand);
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env,
+                             axis2_char_t *must_understand);
                                              
         axis2_bool_t (AXIS2_CALL *get_must_understand)
-                                            (axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env);
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env);
+                             
+                             
         axis2_bool_t (AXIS2_CALL *is_processed)
-                                            (axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env);
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env);
+                             
         axis2_bool_t (AXIS2_CALL *set_processed)
-                                            (axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env);                                                                                                                                                                                    
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env);                                                                                                                                                                                    
                                                                                                                                     
                                    
-        axis2_char_t* (AXIS2_CALL *get_role)(axis2_soap_header_block_t *header_block,
-                                             axis2_env_t **env);
+        axis2_char_t* (AXIS2_CALL *get_role)
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env);
                                                                                           
        /**
         * This is only intended to be used by the builder,
         * do not use this function in other places
         */
-        axis2_status_t (AXIS2_CALL *set_base)(axis2_soap_header_block_t *header_block,
-                                              axis2_env_t **env,
-                                              axis2_om_node_t *node);
+        axis2_status_t (AXIS2_CALL *set_base_node)
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env,
+                             axis2_om_node_t *node);
                                               
-        axis2_om_node_t* (AXIS2_CALL *get_base)(axis2_soap_header_block_t *header_block,
-                                                axis2_env_t **env);                                                                                                                                                          
+        axis2_om_node_t* (AXIS2_CALL *get_base_node)
+                            (axis2_soap_header_block_t *header_block,
+                             axis2_env_t **env);                                                                                                                                                          
                                          
     };
 
@@ -149,11 +158,11 @@
         ((header_block)->ops->get_must_understand_with_string(header_block, \
              env, must_understand))                    
 
-#define AXIS2_SOAP_HEADER_BLOCK_SET_BASE(header_block, env, node) \
-        ((header_block)->ops->set_base(header_block, env, node))
+#define AXIS2_SOAP_HEADER_BLOCK_SET_BASE_NODE(header_block, env, node) \
+        ((header_block)->ops->set_base_node(header_block, env, node))
         
-#define AXIS2_SOAP_HEADER_BLOCK_GET_BASE(header_block, env) \
-        ((header_block)->ops->get_base(header_block, env))                       
+#define AXIS2_SOAP_HEADER_BLOCK_GET_BASE_NODE(header_block, env) \
+        ((header_block)->ops->get_base_node(header_block, env))                       
 
 /** @} */
 

Modified: webservices/axis2/trunk/c/include/axis2_soap_message.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_message.h?rev=358221&r1=358220&r2=358221&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_message.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_message.h Tue Dec 20 22:13:14 2005
@@ -23,8 +23,7 @@
  *        corresponds to root element of soap message
  */
 #include <axis2_env.h>
-#include <axis2_om_node.h>
-#include <axis2_om_element.h>
+#include <axis2_soap_envelope.h>
 
 #ifdef __cplusplus
 extern "C"
@@ -57,7 +56,15 @@
 
         axis2_status_t (AXIS2_CALL *free_fn)(axis2_soap_message_t *message,
                                              axis2_env_t **env);
-
+                                             
+        axis2_soap_envelope_t* (AXIS2_CALL *get_soap_envelope)
+                                            (axis2_soap_message_t *message,
+                                             axis2_env_t **env);
+                                             
+        axis2_status_t (AXIS2_CALL *set_soap_envelope)
+                                            (axis2_soap_message_t *message,
+                                             axis2_env_t **env,
+                                             axis2_soap_envelope_t *envelope);
     };
 
   /**
@@ -84,7 +91,13 @@
 /** free soap_message */
 #define AXIS2_SOAP_MESSAGE_FREE(message , env) \
         ((message)->ops->free_fn(message, env))
-
+        
+#define AXIS2_SOAP_MESSAGE_GET_SOAP_ENVELOPE(message, env) \
+        ((message)->ops->get_envelope(message, env))
+        
+#define AXIS2_SOAP_MESSAGE_SET_SOAP_ENVELOPE(message, env, envelope) \
+        ((message)->ops->get_envelope(message, env, envelope)) 
+        
 /** @} */
 
 #ifdef __cplusplus

Added: webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_role.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_role.c?rev=358221&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_role.c (added)
+++ webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_role.c Tue Dec 20 22:13:14 2005
@@ -0,0 +1,287 @@
+/*
+ * 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.
+ */
+ 
+ #include <axis2_soap_fault_role.h>
+ #include <axis2_soap_fault.h>
+ 
+ /***************************** impl struct **********************************/
+ 
+ typedef struct axis2_soap_fault_role_impl_t
+ {
+    axis2_soap_fault_role_t fault_role;
+    
+    int soap_version;
+    
+    axis2_soap_fault_t *parent;
+    
+    axis2_om_node_t *om_ele_node;
+    
+    axis2_om_element_t *om_ele;
+        
+}axis2_soap_fault_role_impl_t;
+
+/**************************** Macro *******************************************/
+
+#define AXIS2_INTF_TO_IMPL(role) ((axis2_soap_fault_role_impl_t*)role)
+
+/**************************** function prototypes *****************************/
+
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_free(axis2_soap_fault_role_t *fault_role,
+                              axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_set_role_value
+                            (axis2_soap_fault_role_t *fault_role,
+                             axis2_env_t **env,
+                             axis2_char_t* uri);
+                                
+axis2_char_t* AXIS2_CALL 
+axis2_soap_fault_role_get_role_value
+                            (axis2_soap_fault_role_t *fault_role,
+                             axis2_env_t **env);
+                                
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_set_base_node
+                            (axis2_soap_fault_role_t *fault_role,
+                             axis2_env_t **env,
+                             axis2_om_node_t *node);
+
+axis2_om_node_t* AXIS2_CALL
+axis2_soap_fault_role_get_base_node
+                        (axis2_soap_fault_role_t *fault_role,
+                         axis2_env_t **env);
+                            
+int AXIS2_CALL 
+axis2_soap_fault_role_get_soap_version
+                        (axis2_soap_fault_role_t *fault_role,
+                         axis2_env_t **env);
+                         
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_set_soap_version
+                        (axis2_soap_fault_role_t *fault_role,
+                         axis2_env_t **env,
+                         int soap_version);                         
+
+/*********************** end function prototypes ******************************/
+
+
+AXIS2_DECLARE(axis2_soap_fault_role_t *)
+axis2_soap_fault_role_create(axis2_env_t **env)
+{
+    axis2_soap_fault_role_impl_t *fault_role_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    fault_role_impl = (axis2_soap_fault_role_impl_t*) AXIS2_MALLOC(
+                            (*env)->allocator,
+                            sizeof(axis2_soap_fault_role_impl_t));
+    if(!fault_role_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    fault_role_impl->fault_role.ops = NULL;
+    fault_role_impl->om_ele = NULL;
+    fault_role_impl->om_ele_node = NULL;
+    
+    fault_role_impl->soap_version = AXIS2_SOAP_VERSION_NOT_SET;
+    fault_role_impl->parent = NULL;
+    
+    fault_role_impl->fault_role.ops = 
+            (axis2_soap_fault_role_ops_t*)AXIS2_MALLOC((*env)->allocator,
+                sizeof(axis2_soap_fault_role_ops_t));
+                
+    if(!(fault_role_impl->fault_role.ops))
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        AXIS2_FREE((*env)->allocator, fault_role_impl);
+        return NULL;
+    }                                                                  
+    
+    fault_role_impl->fault_role.ops->free_fn = 
+        axis2_soap_fault_role_free;
+        
+    fault_role_impl->fault_role.ops->get_role_value =
+        axis2_soap_fault_role_get_role_value;
+        
+    fault_role_impl->fault_role.ops->set_role_value =
+        axis2_soap_fault_role_set_role_value;
+        
+    fault_role_impl->fault_role.ops->set_base_node =
+        axis2_soap_fault_role_set_base_node;
+        
+    fault_role_impl->fault_role.ops->get_base_node =
+        axis2_soap_fault_role_get_base_node;
+        
+    fault_role_impl->fault_role.ops->get_soap_version =
+        axis2_soap_fault_role_get_soap_version; 
+        
+    fault_role_impl->fault_role.ops->set_soap_version =
+        axis2_soap_fault_role_set_soap_version;                    
+                                
+  return  &(fault_role_impl->fault_role);  
+}
+
+AXIS2_DECLARE(axis2_soap_fault_role_t *)
+axis2_soap_fault_role_create_with_parent(axis2_env_t **env,
+                            axis2_soap_fault_t *fault,
+                            axis2_bool_t extract_ns_form_parent)
+{
+    axis2_soap_fault_role_impl_t *fault_role_impl = NULL;
+    axis2_soap_fault_role_t *fault_role = NULL;
+    axis2_om_element_t *this_ele = NULL;
+    axis2_om_node_t *this_node = NULL;
+    axis2_om_node_t *parent_node = NULL;
+    axis2_om_element_t *parent_ele = NULL;
+    axis2_om_namespace_t *parent_ns = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, fault, NULL);
+    
+    fault_role = axis2_soap_fault_role_create(env);
+    if(!fault_role)
+        return NULL;
+        
+    fault_role_impl = AXIS2_INTF_TO_IMPL(fault_role);
+    
+    fault_role_impl->parent = fault;
+    
+    parent_node = AXIS2_SOAP_FAULT_GET_BASE_NODE(fault, env);
+    
+    parent_ele  = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(
+                        fault_role_impl->om_ele_node, env);
+    
+    if(extract_ns_form_parent)
+    {
+        parent_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(parent_ele, env);
+    }
+    
+    this_ele = axis2_om_element_create(env, 
+                                       parent_node,                             
+                                       AXIS2_SOAP12_SOAP_FAULT_ROLE_LOCAL_NAME,
+                                       parent_ns,
+                                       &this_node);
+    fault_role_impl->om_ele = this_ele;
+    fault_role_impl->om_ele_node = this_node;                                       
+    return  &(fault_role_impl->fault_role);            
+}
+
+
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_free(axis2_soap_fault_role_t *fault_role,
+                              axis2_env_t **env)
+{
+    axis2_soap_fault_role_impl_t *fault_role_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_role, env, AXIS2_FAILURE);
+    if(fault_role->ops)
+        AXIS2_FREE((*env)->allocator, fault_role->ops);
+        
+    AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(fault_role));        
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_set_role_value
+                            (axis2_soap_fault_role_t *fault_role,
+                             axis2_env_t **env,
+                             axis2_char_t* uri)
+{
+    axis2_soap_fault_role_impl_t *fault_role_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_role, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, uri, AXIS2_FAILURE);
+    fault_role_impl = AXIS2_INTF_TO_IMPL(fault_role);
+    
+    if(fault_role_impl->om_ele && fault_role_impl->om_ele_node)
+    {
+        return AXIS2_OM_ELEMENT_SET_TEXT(fault_role_impl->om_ele,
+                                         env,
+                                         uri,
+                                         fault_role_impl->om_ele_node);
+    }
+    return AXIS2_FAILURE;    
+}
+                                
+axis2_char_t* AXIS2_CALL 
+axis2_soap_fault_role_get_role_value
+                            (axis2_soap_fault_role_t *fault_role,
+                             axis2_env_t **env)
+{
+    axis2_soap_fault_role_impl_t *fault_role_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_role, env, NULL);
+    fault_role_impl = AXIS2_INTF_TO_IMPL(fault_role);
+    
+    if(fault_role_impl->om_ele && fault_role_impl->om_ele_node)   
+    {
+        return AXIS2_OM_ELEMENT_GET_TEXT(fault_role_impl->om_ele,
+                                         env,
+                                         fault_role_impl->om_ele_node); 
+    }
+    return NULL;
+}
+                                
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_set_base_node
+                            (axis2_soap_fault_role_t *fault_role,
+                             axis2_env_t **env,
+                             axis2_om_node_t *node)
+{
+   axis2_soap_fault_role_impl_t *fault_role_impl = NULL;
+   AXIS2_FUNC_PARAM_CHECK(fault_role, env, AXIS2_FAILURE);
+   AXIS2_PARAM_CHECK((*env)->error, node, AXIS2_FAILURE);
+   fault_role_impl = AXIS2_INTF_TO_IMPL(fault_role);
+   
+   if(AXIS2_OM_NODE_GET_NODE_TYPE(node, env) != AXIS2_FAILURE)
+   {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_BASE_TYPE, AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+   }
+   fault_role_impl->om_ele_node = node;
+   fault_role_impl->om_ele = (axis2_om_element_t *)
+            AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
+   return AXIS2_SUCCESS;
+
+
+}
+
+axis2_om_node_t* AXIS2_CALL
+axis2_soap_fault_role_get_base_node
+                        (axis2_soap_fault_role_t *fault_role,
+                         axis2_env_t **env)
+{
+     AXIS2_FUNC_PARAM_CHECK(fault_role, env, NULL);
+     return AXIS2_INTF_TO_IMPL(fault_role)->om_ele_node;
+}
+                            
+int AXIS2_CALL 
+axis2_soap_fault_role_get_soap_version
+                        (axis2_soap_fault_role_t *fault_role,
+                         axis2_env_t **env)
+{
+    AXIS2_FUNC_PARAM_CHECK(fault_role, env, AXIS2_FAILURE);
+    return AXIS2_INTF_TO_IMPL(fault_role)->soap_version;
+}
+
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_role_set_soap_version
+                        (axis2_soap_fault_role_t *fault_role,
+                         axis2_env_t **env,
+                         int soap_version)
+{
+    AXIS2_FUNC_PARAM_CHECK(fault_role, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, soap_version, AXIS2_FAILURE);
+    AXIS2_INTF_TO_IMPL(fault_role)->soap_version = soap_version;
+    return AXIS2_SUCCESS;
+} 

Added: webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_sub_code.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_sub_code.c?rev=358221&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_sub_code.c (added)
+++ webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_sub_code.c Tue Dec 20 22:13:14 2005
@@ -0,0 +1,397 @@
+/*
+ * 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.
+ */
+ 
+ #include <axis2_soap_fault_sub_code.h>
+ #include <axis2_soap_fault_code.h>
+ #include <axis2_soap_fault_value.h>
+ #include <axis2_soap_utils.h> 
+ /********************** impl struct ******************************************/
+ 
+ typedef struct axis2_soap_fault_sub_code_impl_t
+ {
+    axis2_soap_fault_sub_code_t fault_sub_code;
+    
+    axis2_om_node_t *om_ele_node;
+    
+    axis2_om_element_t *om_ele;
+    
+    axis2_soap_fault_value_t *value;
+    
+    axis2_soap_fault_sub_code_t *subcode;
+    
+    axis2_soap_fault_code_t *parent;
+    
+    int soap_version;    
+ 
+}axis2_soap_fault_sub_code_impl_t;
+
+/************************* Macro *********************************************/
+
+#define AXIS2_INTF_TO_IMPL(subcode) \
+        ((axis2_soap_fault_sub_code_impl_t*)subcode)
+        
+/******************** function prototypes *************************************/
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_free(axis2_soap_fault_sub_code_t *fault_sub_code,
+                               axis2_env_t **env);
+                               
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_set_sub_code(
+                              axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_soap_fault_sub_code_t *sub_code);
+                              
+axis2_soap_fault_value_t* AXIS2_CALL
+axis2_soap_fault_sub_code_get_value
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);                              
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_set_value
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_soap_fault_value_t *fault_sub_code_val);
+                         
+axis2_soap_fault_sub_code_t* AXIS2_CALL
+axis2_soap_fault_sub_code_get_sub_code(
+                              axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);
+                              
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_sub_code_set_base_node
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_om_node_t *node);
+    
+axis2_om_node_t* AXIS2_CALL 
+axis2_soap_fault_sub_code_get_base_node
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);
+                                 
+int AXIS2_CALL 
+axis2_soap_fault_sub_code_get_soap_version
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env);    
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_sub_code_set_soap_version
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              int soap_version);                              
+                                
+
+/********************** function implementations ******************************/
+
+AXIS2_DECLARE(axis2_soap_fault_sub_code_t *)
+axis2_soap_fault_sub_code_create(axis2_env_t **env)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_subcode_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    fault_subcode_impl = (axis2_soap_fault_sub_code_impl_t*) AXIS2_MALLOC(
+                            (*env)->allocator,
+                            sizeof(axis2_soap_fault_sub_code_impl_t));
+    if(!fault_subcode_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    fault_subcode_impl->fault_sub_code.ops = NULL;
+    fault_subcode_impl->om_ele = NULL;
+    fault_subcode_impl->om_ele_node = NULL;
+    
+    fault_subcode_impl->soap_version = AXIS2_SOAP_VERSION_NOT_SET;
+    fault_subcode_impl->value = NULL;
+    fault_subcode_impl->subcode = NULL;
+    fault_subcode_impl->parent = NULL;
+    
+    fault_subcode_impl->fault_sub_code.ops = 
+            (axis2_soap_fault_sub_code_ops_t*)AXIS2_MALLOC((*env)->allocator,
+                sizeof(axis2_soap_fault_sub_code_ops_t));
+                
+    if(!(fault_subcode_impl->fault_sub_code.ops))
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        AXIS2_FREE((*env)->allocator, fault_subcode_impl);
+        return NULL;
+    }                                                                  
+    
+    fault_subcode_impl->fault_sub_code.ops->free_fn = 
+        axis2_soap_fault_sub_code_free;
+        
+    fault_subcode_impl->fault_sub_code.ops->get_sub_code =
+        axis2_soap_fault_sub_code_get_sub_code;
+        
+    fault_subcode_impl->fault_sub_code.ops->set_sub_code = 
+        axis2_soap_fault_sub_code_set_sub_code;
+        
+    fault_subcode_impl->fault_sub_code.ops->get_value =
+        axis2_soap_fault_sub_code_get_value;
+        
+    fault_subcode_impl->fault_sub_code.ops->set_value =
+        axis2_soap_fault_sub_code_set_value;
+        
+    fault_subcode_impl->fault_sub_code.ops->set_base_node =
+        axis2_soap_fault_sub_code_set_base_node;
+        
+    fault_subcode_impl->fault_sub_code.ops->get_base_node =
+        axis2_soap_fault_sub_code_get_base_node;
+        
+    fault_subcode_impl->fault_sub_code.ops->get_soap_version =
+        axis2_soap_fault_sub_code_get_soap_version;
+        
+    fault_subcode_impl->fault_sub_code.ops->set_soap_version =
+        axis2_soap_fault_sub_code_set_soap_version;                    
+                                
+  return  &(fault_subcode_impl->fault_sub_code);        
+}
+
+AXIS2_DECLARE(axis2_soap_fault_sub_code_t *)
+axis2_soap_fault_sub_code_create_with_parent(axis2_env_t **env,
+                            axis2_soap_fault_code_t *fault_code)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_sub_code_impl =  NULL;
+    axis2_soap_fault_sub_code_t *fault_sub_code = NULL;
+    axis2_om_element_t *this_ele = NULL;
+    axis2_om_node_t *this_node = NULL;
+    axis2_om_node_t *parent_node = NULL;
+    axis2_om_element_t *parent_ele = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, fault_code, NULL);
+
+    fault_sub_code = axis2_soap_fault_sub_code_create(env);
+    if(!fault_sub_code)
+        return NULL;
+    fault_sub_code_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+    
+    fault_sub_code_impl->parent = fault_code;
+    parent_node = AXIS2_SOAP_FAULT_CODE_GET_BASE_NODE(fault_code, env);
+    parent_ele  = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(
+                        fault_sub_code_impl->om_ele_node, env);
+                        
+    this_ele = axis2_om_element_create(env, 
+                                    parent_node,
+                                    AXIS2_SOAP12_SOAP_FAULT_SUB_CODE_LOCAL_NAME,
+                                    AXIS2_OM_ELEMENT_GET_NAMESPACE(parent_ele, env),
+                                    &this_node);
+    fault_sub_code_impl->om_ele = this_ele;
+    fault_sub_code_impl->om_ele_node = this_node;
+ return &(fault_sub_code_impl->fault_sub_code);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_free(axis2_soap_fault_sub_code_t *fault_sub_code,
+                               axis2_env_t **env)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_sub_code_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+    fault_sub_code_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+    
+    if(fault_sub_code_impl->value)
+    {
+        AXIS2_SOAP_FAULT_VALUE_FREE(fault_sub_code_impl->value, env);
+        fault_sub_code_impl->value = NULL;
+    }
+    if(fault_sub_code_impl->subcode)
+    {
+        AXIS2_SOAP_FAULT_SUB_CODE_FREE(fault_sub_code_impl->subcode, env);
+        fault_sub_code_impl->subcode = NULL;
+    }
+    if(fault_sub_code->ops)
+    {
+        AXIS2_FREE((*env)->allocator, fault_sub_code->ops);
+        fault_sub_code->ops = NULL;
+    }
+    AXIS2_FREE((*env)->allocator, fault_sub_code_impl);
+    fault_sub_code_impl = NULL;
+    return AXIS2_SUCCESS;
+}
+                               
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_set_sub_code(
+                              axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_soap_fault_sub_code_t *sub_code)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_subcode_impl = NULL;
+    axis2_om_node_t *subcode_node = NULL;
+    axis2_om_node_t *this_node = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, sub_code, AXIS2_FAILURE);
+    
+    fault_subcode_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+    if(fault_subcode_impl->subcode)
+    {
+        subcode_node = AXIS2_SOAP_FAULT_SUB_CODE_GET_BASE_NODE(
+                            fault_subcode_impl->subcode, env);
+        AXIS2_SOAP_FAULT_SUB_CODE_FREE(fault_subcode_impl->subcode, env);
+        AXIS2_OM_NODE_FREE_TREE(subcode_node, env);                            
+        subcode_node = NULL;
+        fault_subcode_impl->subcode = NULL;
+    }
+    
+    fault_subcode_impl->subcode = sub_code;
+    subcode_node = AXIS2_SOAP_FAULT_SUB_CODE_GET_BASE_NODE(
+                        sub_code, env);
+                        
+    AXIS2_OM_NODE_ADD_CHILD(subcode_node, env, fault_subcode_impl->om_ele_node);
+    
+    return AXIS2_SUCCESS;            
+}
+                              
+axis2_soap_fault_value_t* AXIS2_CALL
+axis2_soap_fault_sub_code_get_value
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_subcode_impl = NULL;
+    axis2_om_node_t *subcode_node = NULL;
+    axis2_om_node_t *this_node = NULL;
+    axis2_soap_fault_value_t* fault_value = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, NULL);
+    fault_subcode_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+    this_node = AXIS2_SOAP_FAULT_SUB_CODE_GET_BASE_NODE(fault_sub_code, env);
+    
+    
+    if(!(fault_subcode_impl->value))
+    {
+        subcode_node = axis2_soap_utils_get_child_with_name(env, 
+                                            this_node, 
+                                            AXIS2_SOAP12_SOAP_FAULT_VALUE_LOCAL_NAME);
+                                                    
+        fault_value = axis2_soap_fault_value_create(env);
+        AXIS2_SOAP_FAULT_VALUE_SET_BASE_NODE(fault_value, env, subcode_node);
+        fault_subcode_impl->value = fault_value;
+    }
+    return fault_subcode_impl->value;
+}                              
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_set_value
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_soap_fault_value_t *fault_sub_code_val)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_subcode_impl = NULL;
+    axis2_om_node_t *value_node = NULL;
+    axis2_om_node_t *this_node = NULL;
+    axis2_om_node_t *my_node = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, fault_sub_code_val, AXIS2_FAILURE);
+    
+    fault_subcode_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+    if(fault_subcode_impl->value)
+    {
+        my_node = AXIS2_SOAP_FAULT_VALUE_GET_BASE_NODE(
+                            fault_subcode_impl->value, env);
+        AXIS2_SOAP_FAULT_SUB_CODE_FREE(fault_subcode_impl->value, env);
+        fault_subcode_impl->value = NULL;
+    }
+    
+    value_node = AXIS2_SOAP_FAULT_VALUE_GET_BASE_NODE(
+                            fault_sub_code_val, env);
+    
+    axis2_soap_utils_set_new_node(env, 
+                    fault_subcode_impl->om_ele_node,
+                    &my_node, 
+                    value_node);
+                    
+    fault_subcode_impl->value = fault_sub_code_val;
+    return AXIS2_SUCCESS;    
+}
+                         
+axis2_soap_fault_sub_code_t* AXIS2_CALL
+axis2_soap_fault_sub_code_get_sub_code(
+                              axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env)
+{
+    axis2_soap_fault_sub_code_impl_t *fault_subcode_impl = NULL;
+    axis2_om_node_t *subcode_node = NULL;
+    axis2_om_node_t *this_node = NULL;
+    axis2_soap_fault_sub_code_t* subcode = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, fault_sub_code, NULL);
+    fault_subcode_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+    this_node = AXIS2_SOAP_FAULT_SUB_CODE_GET_BASE_NODE(fault_sub_code, env);
+    
+    
+    if(!(fault_subcode_impl->subcode))
+    {
+        subcode_node = axis2_soap_utils_get_child_with_name(env, 
+                                            this_node, 
+                                            AXIS2_SOAP12_SOAP_FAULT_SUB_CODE_LOCAL_NAME);
+                                                    
+        subcode = axis2_soap_fault_sub_code_create(env);
+        AXIS2_SOAP_FAULT_SUB_CODE_SET_BASE_NODE(subcode , env, subcode_node);
+        fault_subcode_impl->subcode = subcode;
+    }
+    return fault_subcode_impl->subcode;
+}
+                              
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_sub_code_set_base_node
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              axis2_om_node_t *node)
+{
+   axis2_soap_fault_sub_code_impl_t *fault_subcode_impl = NULL;
+   AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+   AXIS2_PARAM_CHECK((*env)->error, node, AXIS2_FAILURE);
+   fault_subcode_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+   
+   if(AXIS2_OM_NODE_GET_NODE_TYPE(node, env) != AXIS2_FAILURE)
+   {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_BASE_TYPE, AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+   }
+   fault_subcode_impl->om_ele_node = node;
+   fault_subcode_impl->om_ele = (axis2_om_element_t *)
+            AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
+   return AXIS2_SUCCESS;
+}
+    
+axis2_om_node_t* AXIS2_CALL 
+axis2_soap_fault_sub_code_get_base_node
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env)
+{
+     AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, NULL);
+     return AXIS2_INTF_TO_IMPL(fault_sub_code)->om_ele_node;
+}
+                                 
+int AXIS2_CALL 
+axis2_soap_fault_sub_code_get_soap_version
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env)
+{
+     AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+     return AXIS2_INTF_TO_IMPL(fault_sub_code)->soap_version;
+} 
+
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_sub_code_set_soap_version
+                             (axis2_soap_fault_sub_code_t *fault_sub_code,
+                              axis2_env_t **env,
+                              int soap_version)
+{
+     AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+     AXIS2_PARAM_CHECK((*env)->error, soap_version, AXIS2_FAILURE);
+     AXIS2_INTF_TO_IMPL(fault_sub_code)->soap_version = soap_version;
+     return AXIS2_SUCCESS;
+}
\ No newline at end of file

Added: webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_text.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_text.c?rev=358221&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_text.c (added)
+++ webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_fault_text.c Tue Dec 20 22:13:14 2005
@@ -0,0 +1,327 @@
+/*
+ * 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.
+ */
+ 
+#include <axis2_soap_fault.h>
+#include <axis2_om_element.h>
+#include <axis2_soap_fault_text.h>
+#include <axis2_soap_fault_reason.h>
+#include <axis2_om_namespace.h>
+#include <axis2_qname.h>
+
+ 
+/****************** impl struct *********************************************/
+ 
+ typedef struct axis2_soap_fault_text_impl_t
+ {
+    axis2_soap_fault_text_t fault_text;
+    
+    axis2_om_attribute_t *lang_attribute;
+    
+    axis2_om_namespace_t *lang_namespace;
+    
+    axis2_om_node_t *om_ele_node;
+    
+    axis2_om_element_t *om_ele;
+    
+    axis2_soap_fault_reason_t *parent;
+    
+    axis2_bool_t lang_ns_used;
+    
+    int soap_version;
+    
+}axis2_soap_fault_text_impl_t;
+
+/********************** Macro ************************************************/
+
+#define AXIS2_INTF_TO_IMPL(fault_txt) \
+        ((axis2_soap_fault_text_impl_t*)fault_txt)
+
+/********************* function prototypes ***********************************/
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_text_free(axis2_soap_fault_text_t *fault_text,
+                                  axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_text_set_lang(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env,
+                                      axis2_char_t* lang);
+                                     
+axis2_char_t* AXIS2_CALL
+axis2_soap_fault_text_get_lang(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env);
+                                     
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_text_set_base_node(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env,
+                                      axis2_om_node_t *node);
+    
+axis2_om_node_t* AXIS2_CALL 
+axis2_soap_fault_text_get_base_node(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env);
+                                      
+int AXIS2_CALL
+axis2_soap_fault_text_get_soap_version(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env);
+                                      
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_text_set_soap_version(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env,
+                                      int soap_version);                                        
+                                      
+/***************************** functions **************************************/                                      
+                                                       
+
+AXIS2_DECLARE(axis2_soap_fault_text_t *)
+axis2_soap_fault_text_create(axis2_env_t **env)
+{
+    axis2_soap_fault_text_impl_t *fault_text_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    
+    fault_text_impl = (axis2_soap_fault_text_impl_t*)AXIS2_MALLOC(
+                        (*env)->allocator,
+                        sizeof(axis2_soap_fault_text_impl_t));
+    if(!fault_text_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }                                  
+    
+    fault_text_impl->fault_text.ops = NULL;
+    fault_text_impl->om_ele = NULL;
+    fault_text_impl->om_ele_node = NULL;
+    fault_text_impl->lang_attribute = NULL;
+    fault_text_impl->lang_namespace = NULL;
+    fault_text_impl->lang_ns_used = AXIS2_FALSE;
+    fault_text_impl->soap_version = AXIS2_SOAP_VERSION_NOT_SET;
+    
+    fault_text_impl->lang_namespace = axis2_om_namespace_create(env,
+                                        AXIS2_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_URI,
+                                        AXIS2_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_PREFIX);
+                                        
+    if(!(fault_text_impl->lang_namespace))
+            return NULL;
+            
+    fault_text_impl->fault_text.ops = (axis2_soap_fault_text_ops_t*)AXIS2_MALLOC(
+                                       (*env)->allocator,
+                                       sizeof(axis2_soap_fault_text_ops_t));
+    if(!(fault_text_impl->fault_text.ops))
+    {
+        AXIS2_FREE((*env)->allocator, fault_text_impl);
+        fault_text_impl = NULL;
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }                                       
+    
+    fault_text_impl->fault_text.ops->free_fn = 
+        axis2_soap_fault_text_free;
+        
+    fault_text_impl->fault_text.ops->set_lang =
+        axis2_soap_fault_text_set_lang;        
+    
+    fault_text_impl->fault_text.ops->get_lang =
+        axis2_soap_fault_text_get_lang;
+    
+    fault_text_impl->fault_text.ops->get_base_node =
+        axis2_soap_fault_text_get_base_node;
+        
+    fault_text_impl->fault_text.ops->set_base_node =
+        axis2_soap_fault_text_set_base_node;
+        
+    fault_text_impl->fault_text.ops->get_soap_version =
+        axis2_soap_fault_text_get_soap_version;
+        
+    fault_text_impl->fault_text.ops->set_soap_version =
+        axis2_soap_fault_text_set_soap_version;                
+        
+    return &(fault_text_impl->fault_text);    
+}
+
+
+
+AXIS2_DECLARE(axis2_soap_fault_text_t *)
+axis2_soap_fault_text_create_with_parent(axis2_env_t **env,
+                            axis2_soap_fault_reason_t *parent)
+{
+    axis2_soap_fault_text_impl_t *fault_text_impl = NULL;
+    axis2_soap_fault_text_t *fault_text = NULL;
+    axis2_om_element_t *this_ele = NULL;
+    axis2_om_node_t *this_node = NULL;
+    axis2_om_node_t *parent_node = NULL;
+    axis2_om_element_t *parent_ele = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, parent, NULL);
+    fault_text = axis2_soap_fault_text_create(env);
+    
+    if(!fault_text)
+    {
+        return NULL;
+    }
+    
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);
+    
+    fault_text_impl->parent = parent;
+    
+    parent_node = AXIS2_SOAP_FAULT_REASON_GET_BASE_NODE(parent, env);
+    parent_ele  = (axis2_om_element_t*)
+                    AXIS2_OM_NODE_GET_DATA_ELEMENT(parent_node, env);
+    
+    this_ele = axis2_om_element_create(env, 
+                    parent_node,
+                    AXIS2_SOAP12_SOAP_FAULT_TEXT_LOCAL_NAME, 
+                    AXIS2_OM_ELEMENT_GET_NAMESPACE(parent_ele, env),
+                    &this_node);
+    fault_text_impl->om_ele_node = this_node;
+    fault_text_impl->om_ele = this_ele;
+    
+    return &(fault_text_impl->fault_text);
+}
+                            
+                                                       
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_text_free(axis2_soap_fault_text_t *fault_text,
+                                  axis2_env_t **env)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, AXIS2_FAILURE);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);
+    
+    if(fault_text->ops)
+    {
+        AXIS2_FREE((*env)->allocator, fault_text->ops);
+        fault_text->ops = NULL; 
+    }    
+    if(fault_text_impl->lang_ns_used = AXIS2_FALSE && fault_text_impl->lang_namespace)
+    {
+        AXIS2_OM_NAMESPACE_FREE(fault_text_impl->lang_namespace, env);
+        fault_text_impl->lang_namespace = NULL;
+    }
+    AXIS2_FREE((*env)->allocator, fault_text_impl);
+    fault_text_impl = NULL;
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_text_set_lang(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env,
+                                      axis2_char_t* lang)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, lang, AXIS2_FAILURE);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);
+    
+    fault_text_impl->lang_attribute = axis2_om_attribute_create(env, 
+                                        AXIS2_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_LOCAL_NAME,
+                                        lang, fault_text_impl->lang_namespace);
+                                        
+    fault_text_impl->lang_ns_used = AXIS2_TRUE;
+    
+    if(fault_text_impl->om_ele)
+    {
+        AXIS2_OM_ELEMENT_ADD_ATTRIBUTE(fault_text_impl->om_ele, env,
+                                       fault_text_impl->lang_attribute,
+                                       fault_text_impl->om_ele_node);
+        return AXIS2_SUCCESS;                                       
+    }
+    return AXIS2_FAILURE;
+}
+                                     
+axis2_char_t* AXIS2_CALL
+axis2_soap_fault_text_get_lang(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    axis2_qname_t* tmp_qname = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, NULL);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);   
+    /* this logic need to be rechecked */
+    if(!(fault_text_impl->lang_attribute))
+    {
+        tmp_qname = axis2_qname_create(env, 
+                        AXIS2_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_LOCAL_NAME,
+                        AXIS2_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_URI,
+                        AXIS2_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_PREFIX);
+
+        fault_text_impl->lang_attribute = 
+            AXIS2_OM_ELEMENT_GET_ATTRIBUTE(fault_text_impl->om_ele,
+                                           env,
+                                           tmp_qname);
+        AXIS2_QNAME_FREE(tmp_qname, env);                                           
+    }
+    if(fault_text_impl->lang_attribute)
+    {
+        return AXIS2_OM_ATTRIBUTE_GET_VALUE(fault_text_impl->lang_attribute, env);
+    }
+    else
+        return NULL;
+}
+                                     
+axis2_status_t AXIS2_CALL 
+axis2_soap_fault_text_set_base_node(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env,
+                                      axis2_om_node_t *node)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, node, AXIS2_FAILURE);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);
+    if(AXIS2_OM_NODE_GET_NODE_TYPE(node, env) != AXIS2_OM_ELEMENT)
+    {
+        AXIS2_ERROR_SET((*env)->error, 
+                AXIS2_ERROR_INVALID_BASE_TYPE, AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+    
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);
+    fault_text_impl->om_ele_node = node;
+    fault_text_impl->om_ele = (axis2_om_element_t *) 
+                            AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
+    return AXIS2_SUCCESS;
+}
+    
+axis2_om_node_t* AXIS2_CALL 
+axis2_soap_fault_text_get_base_node(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, NULL);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text); 
+    return fault_text_impl->om_ele_node;
+}
+
+int AXIS2_CALL
+axis2_soap_fault_text_get_soap_version(axis2_soap_fault_text_t *fault_text,
+                                      axis2_env_t **env)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, AXIS2_FAILURE);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text); 
+    return fault_text_impl->soap_version;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_text_set_soap_version(axis2_soap_fault_text_t *fault_text,
+                                       axis2_env_t **env,
+                                       int soap_version)
+{
+    axis2_soap_fault_text_impl_t* fault_text_impl = NULL;
+    AXIS2_FUNC_PARAM_CHECK(fault_text, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, soap_version, AXIS2_FAILURE);
+    fault_text_impl = AXIS2_INTF_TO_IMPL(fault_text);
+    fault_text_impl->soap_version = soap_version;
+    return AXIS2_SUCCESS;
+}