4
* adb_ccTerminatedInstanceType.c
6
* This file was auto-generated from WSDL
7
* by the Apache Axis2/C version: SNAPSHOT Built on : Mar 10, 2008 (08:35:52 GMT+00:00)
10
#include "adb_ccTerminatedInstanceType.h"
13
* This type was generated from the piece of schema that had
14
* name = ccTerminatedInstanceType
15
* Namespace URI = http://eucalyptus.ucsb.edu/
16
* Namespace Prefix = ns1
21
struct adb_ccTerminatedInstanceType
23
axis2_char_t* property_instanceId;
26
axis2_bool_t is_valid_instanceId;
33
/************************* Private Function prototypes ********************************/
36
axis2_status_t AXIS2_CALL
37
adb_ccTerminatedInstanceType_set_instanceId_nil(
38
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
39
const axutil_env_t *env);
43
/************************* Function Implmentations ********************************/
44
adb_ccTerminatedInstanceType_t* AXIS2_CALL
45
adb_ccTerminatedInstanceType_create(
46
const axutil_env_t *env)
48
adb_ccTerminatedInstanceType_t *_ccTerminatedInstanceType = NULL;
50
AXIS2_ENV_CHECK(env, NULL);
52
_ccTerminatedInstanceType = (adb_ccTerminatedInstanceType_t *) AXIS2_MALLOC(env->
53
allocator, sizeof(adb_ccTerminatedInstanceType_t));
55
if(NULL == _ccTerminatedInstanceType)
57
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
61
memset(_ccTerminatedInstanceType, 0, sizeof(adb_ccTerminatedInstanceType_t));
63
_ccTerminatedInstanceType->property_instanceId = NULL;
64
_ccTerminatedInstanceType->is_valid_instanceId = AXIS2_FALSE;
67
return _ccTerminatedInstanceType;
70
axis2_status_t AXIS2_CALL
71
adb_ccTerminatedInstanceType_free (
72
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
73
const axutil_env_t *env)
77
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
78
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, AXIS2_FAILURE);
80
adb_ccTerminatedInstanceType_reset_instanceId(_ccTerminatedInstanceType, env);
83
if(_ccTerminatedInstanceType)
85
AXIS2_FREE(env->allocator, _ccTerminatedInstanceType);
86
_ccTerminatedInstanceType = NULL;
94
axis2_status_t AXIS2_CALL
95
adb_ccTerminatedInstanceType_deserialize(
96
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
97
const axutil_env_t *env,
98
axiom_node_t **dp_parent,
99
axis2_bool_t *dp_is_early_node_valid,
100
axis2_bool_t dont_care_minoccurs)
102
axiom_node_t *parent = *dp_parent;
104
axis2_status_t status = AXIS2_SUCCESS;
106
axis2_char_t* text_value = NULL;
107
axutil_qname_t *qname = NULL;
109
axutil_qname_t *element_qname = NULL;
111
axiom_node_t *first_node = NULL;
112
axis2_bool_t is_early_node_valid = AXIS2_TRUE;
113
axiom_node_t *current_node = NULL;
114
axiom_element_t *current_element = NULL;
116
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
117
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, AXIS2_FAILURE);
121
while(parent && axiom_node_get_node_type(parent, env) != AXIOM_ELEMENT)
123
parent = axiom_node_get_next_sibling(parent, env);
127
/* This should be checked before everything */
128
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
129
"Failed in building adb object for ccTerminatedInstanceType : "
130
"NULL elemenet can not be passed to deserialize");
131
return AXIS2_FAILURE;
135
first_node = axiom_node_get_first_child(parent, env);
141
* building instanceId element
146
current_node = first_node;
147
is_early_node_valid = AXIS2_FALSE;
150
while(current_node && axiom_node_get_node_type(current_node, env) != AXIOM_ELEMENT)
152
current_node = axiom_node_get_next_sibling(current_node, env);
154
if(current_node != NULL)
156
current_element = (axiom_element_t *)axiom_node_get_data_element(current_node, env);
157
qname = axiom_element_get_qname(current_element, env, current_node);
160
element_qname = axutil_qname_create(env, "instanceId", "http://eucalyptus.ucsb.edu/", NULL);
164
(current_node && current_element && (axutil_qname_equals(element_qname, env, qname))))
166
if( current_node && current_element && (axutil_qname_equals(element_qname, env, qname)))
168
is_early_node_valid = AXIS2_TRUE;
172
text_value = axiom_element_get_text(current_element, env, current_node);
173
if(text_value != NULL)
175
status = adb_ccTerminatedInstanceType_set_instanceId(_ccTerminatedInstanceType, env,
182
* axis2_qname_t *qname = NULL;
183
* axiom_attribute_t *the_attri = NULL;
185
* qname = axutil_qname_create(env, "nil", "http://www.w3.org/2001/XMLSchema-instance", "xsi");
186
* the_attri = axiom_element_get_attribute(current_element, env, qname);
188
/* currently thereis a bug in the axiom_element_get_attribute, so we have to go to this bad method */
190
axiom_attribute_t *the_attri = NULL;
191
axis2_char_t *attrib_text = NULL;
192
axutil_hash_t *attribute_hash = NULL;
194
attribute_hash = axiom_element_get_all_attributes(current_element, env);
199
axutil_hash_index_t *hi;
203
for (hi = axutil_hash_first(attribute_hash, env); hi; hi = axutil_hash_next(env, hi))
205
axutil_hash_this(hi, &key, NULL, &val);
207
if(strstr((axis2_char_t*)key, "nil|http://www.w3.org/2001/XMLSchema-instance"))
209
the_attri = (axiom_attribute_t*)val;
217
attrib_text = axiom_attribute_get_value(the_attri, env);
221
/* this is hoping that attribute is stored in "http://www.w3.org/2001/XMLSchema-instance", this happnes when name is in default namespace */
222
attrib_text = axiom_element_get_attribute_value_by_name(current_element, env, "nil");
225
if(attrib_text && 0 == axutil_strcmp(attrib_text, "1"))
227
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "NULL value is set to a non nillable element instanceId");
228
status = AXIS2_FAILURE;
232
/* after all, we found this is a empty string */
233
status = adb_ccTerminatedInstanceType_set_instanceId(_ccTerminatedInstanceType, env,
238
if(AXIS2_FAILURE == status)
240
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "failed in setting the value for instanceId ");
243
axutil_qname_free(element_qname, env);
245
return AXIS2_FAILURE;
249
else if(!dont_care_minoccurs)
253
axutil_qname_free(element_qname, env);
255
/* this is not a nillable element*/
256
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "non nillable or minOuccrs != 0 element instanceId missing");
257
return AXIS2_FAILURE;
262
axutil_qname_free(element_qname, env);
263
element_qname = NULL;
269
axis2_bool_t AXIS2_CALL
270
adb_ccTerminatedInstanceType_is_particle()
279
adb_ccTerminatedInstanceType_declare_parent_namespaces(
280
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
281
const axutil_env_t *env, axiom_element_t *parent_element,
282
axutil_hash_t *namespaces, int *next_ns_index)
285
/* Here this is an empty function, Nothing to declare */
291
axiom_node_t* AXIS2_CALL
292
adb_ccTerminatedInstanceType_serialize(
293
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
294
const axutil_env_t *env, axiom_node_t *parent, axiom_element_t *parent_element, int parent_tag_closed, axutil_hash_t *namespaces, int *next_ns_index)
298
axis2_char_t *string_to_stream;
301
axiom_node_t *current_node = NULL;
306
axiom_namespace_t *ns1 = NULL;
308
axis2_char_t *qname_uri = NULL;
309
axis2_char_t *qname_prefix = NULL;
310
axis2_char_t *p_prefix = NULL;
311
axis2_bool_t ns_already_defined;
313
axis2_char_t *text_value_1;
314
axis2_char_t *text_value_1_temp;
316
axis2_char_t *start_input_str = NULL;
317
axis2_char_t *end_input_str = NULL;
318
unsigned int start_input_str_len = 0;
319
unsigned int end_input_str_len = 0;
322
axiom_data_source_t *data_source = NULL;
323
axutil_stream_t *stream = NULL;
327
AXIS2_ENV_CHECK(env, NULL);
328
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, NULL);
331
current_node = parent;
332
data_source = (axiom_data_source_t *)axiom_node_get_data_element(current_node, env);
335
stream = axiom_data_source_get_stream(data_source, env); /* assume parent is of type data source */
339
if(!parent_tag_closed)
342
string_to_stream = ">";
343
axutil_stream_write(stream, env, string_to_stream, axutil_strlen(string_to_stream));
348
if(!(p_prefix = (axis2_char_t*)axutil_hash_get(namespaces, "http://eucalyptus.ucsb.edu/", AXIS2_HASH_KEY_STRING)))
350
p_prefix = (axis2_char_t*)AXIS2_MALLOC(env->allocator, sizeof (axis2_char_t) * ADB_DEFAULT_NAMESPACE_PREFIX_LIMIT);
351
sprintf(p_prefix, "n%d", (*next_ns_index)++);
352
axutil_hash_set(namespaces, "http://eucalyptus.ucsb.edu/", AXIS2_HASH_KEY_STRING, p_prefix);
354
axiom_element_declare_namespace_assume_param_ownership(parent_element, env, axiom_namespace_create (env,
355
"http://eucalyptus.ucsb.edu/",
360
if (!_ccTerminatedInstanceType->is_valid_instanceId)
364
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Nil value found in non-nillable property instanceId");
370
start_input_str = (axis2_char_t*)AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) *
371
(4 + axutil_strlen(p_prefix) +
372
axutil_strlen("instanceId")));
374
/* axutil_strlen("<:>") + 1 = 4 */
375
end_input_str = (axis2_char_t*)AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) *
376
(5 + axutil_strlen(p_prefix) + axutil_strlen("instanceId")));
377
/* axutil_strlen("</:>") + 1 = 5 */
385
* parsing instanceId element
390
sprintf(start_input_str, "<%s%sinstanceId>",
391
p_prefix?p_prefix:"",
392
(p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
394
start_input_str_len = axutil_strlen(start_input_str);
395
sprintf(end_input_str, "</%s%sinstanceId>",
396
p_prefix?p_prefix:"",
397
(p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
398
end_input_str_len = axutil_strlen(end_input_str);
400
text_value_1 = _ccTerminatedInstanceType->property_instanceId;
402
axutil_stream_write(stream, env, start_input_str, start_input_str_len);
405
text_value_1_temp = axutil_xml_quote_string(env, text_value_1, AXIS2_TRUE);
406
if (text_value_1_temp)
408
axutil_stream_write(stream, env, text_value_1_temp, axutil_strlen(text_value_1_temp));
409
AXIS2_FREE(env->allocator, text_value_1_temp);
413
axutil_stream_write(stream, env, text_value_1, axutil_strlen(text_value_1));
416
axutil_stream_write(stream, env, end_input_str, end_input_str_len);
419
AXIS2_FREE(env->allocator,start_input_str);
420
AXIS2_FREE(env->allocator,end_input_str);
432
* getter for instanceId.
434
axis2_char_t* AXIS2_CALL
435
adb_ccTerminatedInstanceType_get_instanceId(
436
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
437
const axutil_env_t *env)
440
AXIS2_ENV_CHECK(env, NULL);
441
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, NULL);
444
return _ccTerminatedInstanceType->property_instanceId;
448
* setter for instanceId
450
axis2_status_t AXIS2_CALL
451
adb_ccTerminatedInstanceType_set_instanceId(
452
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
453
const axutil_env_t *env,
454
const axis2_char_t* arg_instanceId)
458
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
459
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, AXIS2_FAILURE);
461
if(_ccTerminatedInstanceType->is_valid_instanceId &&
462
arg_instanceId == _ccTerminatedInstanceType->property_instanceId)
465
return AXIS2_SUCCESS;
469
if(NULL == arg_instanceId)
471
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "instanceId is being set to NULL, but it is not a nullable element");
472
return AXIS2_FAILURE;
474
adb_ccTerminatedInstanceType_reset_instanceId(_ccTerminatedInstanceType, env);
477
if(NULL == arg_instanceId)
479
/* We are already done */
480
return AXIS2_SUCCESS;
482
_ccTerminatedInstanceType->property_instanceId = (axis2_char_t *)axutil_strdup(env, arg_instanceId);
483
if(NULL == _ccTerminatedInstanceType->property_instanceId)
485
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Error allocating memeory for instanceId");
486
return AXIS2_FAILURE;
488
_ccTerminatedInstanceType->is_valid_instanceId = AXIS2_TRUE;
490
return AXIS2_SUCCESS;
496
* resetter for instanceId
498
axis2_status_t AXIS2_CALL
499
adb_ccTerminatedInstanceType_reset_instanceId(
500
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
501
const axutil_env_t *env)
505
void *element = NULL;
507
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
508
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, AXIS2_FAILURE);
514
if(_ccTerminatedInstanceType->property_instanceId != NULL)
518
AXIS2_FREE(env-> allocator, _ccTerminatedInstanceType->property_instanceId);
519
_ccTerminatedInstanceType->property_instanceId = NULL;
524
_ccTerminatedInstanceType->is_valid_instanceId = AXIS2_FALSE;
525
return AXIS2_SUCCESS;
529
* Check whether instanceId is nill
531
axis2_bool_t AXIS2_CALL
532
adb_ccTerminatedInstanceType_is_instanceId_nil(
533
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
534
const axutil_env_t *env)
536
AXIS2_ENV_CHECK(env, AXIS2_TRUE);
537
AXIS2_PARAM_CHECK(env->error, _ccTerminatedInstanceType, AXIS2_TRUE);
539
return !_ccTerminatedInstanceType->is_valid_instanceId;
543
* Set instanceId to nill (currently the same as reset)
545
axis2_status_t AXIS2_CALL
546
adb_ccTerminatedInstanceType_set_instanceId_nil(
547
adb_ccTerminatedInstanceType_t* _ccTerminatedInstanceType,
548
const axutil_env_t *env)
550
return adb_ccTerminatedInstanceType_reset_instanceId(_ccTerminatedInstanceType, env);