1 /*
2  * Portions of this file Copyright 1999-2005 University of Chicago
3  * Portions of this file Copyright 1999-2005 The University of Southern California.
4  *
5  * This file or a portion of this file is licensed under the
6  * terms of the Globus Toolkit Public License, found at
7  * http://www.globus.org/toolkit/download/license.html.
8  * If you redistribute this file, with or without
9  * modifications, you must include this notice in the file.
10  */
11
12 #include "globus_i_xsd.h"
13 #include "globus_i_xsd_type_info.h"
14 #include "globus_soap_message.h"
15 #include "xsd_language.h"
16
17 GLOBUS_I_XSD_DEFINE_QNAME(xsd, language);
18 GLOBUS_I_XSD_DEFINE_TYPE_INFO(xsd_language);
19 0 GLOBUS_I_XSD_DEFINE_TYPE_FUNCTIONS(xsd_language);
20 0 GLOBUS_I_XSD_DEFINE_INIT_CONTENTS_GENERIC(xsd_language);
21
22 globus_result_t
23 xsd_language_copy_contents(
24     xsd_language *                      dest,
25     const xsd_language *                src)
26 {
27 0     globus_result_t                     result = GLOBUS_SUCCESS;
28 0     GlobusFuncName(xsd_language_copy_contents);
29 0     GlobusSoapMessageDebugEnter();
30
31 0     if(dest)
32     {
33 0         if(!src || !*src)
34         {
35 0             *dest = NULL;
36         }
37         else
38         {
39 0             *dest = globus_libc_strdup(*src);
40 0             if(!*dest)
41             {
42 0                 result = GlobusSoapMessageErrorOutOfMemory;
43             }
44         }
45     }
46
47 0     GlobusSoapMessageDebugExit();
48 0     return result;
49 }
50 void
51 xsd_language_destroy_contents(
52     xsd_language *                      instance)
53 0 {
54 0     GlobusFuncName(xsd_language_destroy_contents);
55 0     GlobusSoapMessageDebugEnter();
56
57 0     if(*instance)
58     {
59 0         free(*instance);
60 0         *instance = NULL;
61     }
62
63 0     GlobusSoapMessageDebugExit();
64 }
65
66 globus_result_t
67 xsd_language_serialize_contents(
68     xsd_QName *                         element,
69     xsd_language *                      instance,
70     globus_soap_message_handle_t        soap_message_handle,
71     globus_xsd_element_options_t        options)
72 0 {
73 0     globus_result_t                     result = GLOBUS_SUCCESS;
74 0     GlobusFuncName(xsd_language_serialize_contents);
75 0     GlobusSoapMessageDebugEnter();
76
77     /* serialize contents of type */
78 0     result = globus_soap_message_serialize_string(
79         soap_message_handle, instance);
80
81 0     GlobusSoapMessageDebugExit();
82 0     return result;
83 }
84
85 globus_result_t
86 xsd_language_deserialize_contents(
87     xsd_QName *                         eqn,
88     xsd_language *                      instance,
89     globus_soap_message_handle_t        soap_message_handle,
90     globus_xsd_element_options_t        options)
91 0 {
92 0     globus_result_t                     result = GLOBUS_SUCCESS;
93 0     GlobusFuncName(xsd_language_deserialize_contents);
94 0     GlobusSoapMessageDebugEnter();
95     
96 0     result = globus_soap_message_deserialize_string(
97         soap_message_handle, instance);
98
99 0     GlobusSoapMessageDebugExit();
100 0     return result;
101 }
102
103 globus_result_t
104 xsd_language_serialize_attribute(
105     xsd_QName *                         element_qname,
106     xsd_language *                      instance,
107     globus_soap_message_handle_t        message_handle,
108     globus_xsd_element_options_t        options)
109 0 {
110 0     globus_result_t                     result = GLOBUS_SUCCESS;
111 0     GlobusFuncName(xsd_language_serialize_attribute);
112 0     GlobusSoapMessageDebugEnter();
113
114 0     result = globus_soap_message_serialize_string_attribute(
115         message_handle, element_qname, instance);
116 0     if(result != GLOBUS_SUCCESS)
117     {
118 0         result = GlobusSoapMessageErrorSerializeFailed(
119             result, NULL, element_qname);
120         goto exit;
121     }
122
123  exit:
124
125 0     GlobusSoapMessageDebugExit();
126 0     return result;
127 }
128
129 globus_result_t
130 xsd_language_deserialize_attribute(
131     xsd_QName *                         element_qname,
132     xsd_language *                      ip,
133     globus_soap_message_handle_t        message_handle,
134     globus_xsd_element_options_t        options)
135 0 {
136 0     globus_result_t                 result = GLOBUS_SUCCESS;
137 0     GlobusFuncName(xsd_language_deserialize_attribute);
138 0     GlobusSoapMessageDebugEnter();
139
140 0     result = globus_soap_message_deserialize_string_attribute(
141         message_handle, element_qname, ip);
142 0     if(GlobusSoapMessageStatusAttributeNotFoundCheck(result))
143     {
144 0         result = GLOBUS_SUCCESS;
145 0         goto exit;
146     }
147
148 0     if(result != GLOBUS_SUCCESS)
149     {
150 0         goto error_exit;
151     }
152
153 0     goto exit;
154
155  error_exit:
156
157 0     GlobusSoapMessageErrorDeserializeFailed(result, element_qname);
158
159  exit:
160
161 0     GlobusSoapMessageDebugExit();
162 0     return result;
163 }
164
165 globus_result_t
166 xsd_language_deserialize_attribute_pointer(
167     xsd_QName *                         element_qname,
168     xsd_language **                     ip,
169     globus_soap_message_handle_t        message_handle,
170     globus_xsd_element_options_t        options)
171 0 {
172 0     xsd_language *                  instance = NULL;
173 0     globus_result_t                 result = GLOBUS_SUCCESS;
174 0     GlobusFuncName(xsd_language_deserialize_attribute_pointer);
175 0     GlobusSoapMessageDebugEnter();
176
177 0     *ip = NULL;
178
179 0     result = xsd_language_init(&instance);
180
181 0     if(result != GLOBUS_SUCCESS)
182     {
183 0         goto error_exit;
184     }
185
186 0     result = globus_soap_message_deserialize_string_attribute(
187         message_handle, element_qname, instance);
188 0     if(GlobusSoapMessageStatusAttributeNotFoundCheck(result))
189     {
190 0         result = GLOBUS_SUCCESS;
191 0         goto exit;
192     }
193
194 0     if(result != GLOBUS_SUCCESS)
195     {
196 0         goto error_exit;
197     }
198
199 0     *ip = instance;
200
201 0     goto exit;
202
203  error_exit:
204
205 0     GlobusSoapMessageErrorDeserializeFailed(result, element_qname);
206
207  exit:
208
209 0     if(result != GLOBUS_SUCCESS && instance)
210     {
211 0         xsd_language_destroy(instance);
212 0         *ip = NULL;
213     }
214
215 0     GlobusSoapMessageDebugExit();
216 0     return result;