Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * AbstractRequestType.cpp
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2/C version: SNAPSHOT Built on : Mar 10, 2008 (08:35:52 GMT+00:00)
- */
- #include "AbstractRequestType.h"
- #include <Environment.h>
- #include <WSFError.h>
- using namespace wso2wsf;
- using namespace std;
- using namespace eblbasecomponents_apis_ebay;
- /*
- * This type was generated from the piece of schema that had
- * name = AbstractRequestType
- * Namespace URI = urn:ebay:apis:eBLBaseComponents
- * Namespace Prefix = ns1
- */
- eblbasecomponents_apis_ebay::AbstractRequestType::AbstractRequestType()
- {
- property_MessageID;
- isValidMessageID = false;
- property_ExtraElement = NULL;
- isValidExtraElement = false;
- }
- eblbasecomponents_apis_ebay::AbstractRequestType::AbstractRequestType(std::string arg_MessageID,std::vector<wso2wsf::OMElement*>* arg_ExtraElement)
- {
- property_MessageID;
- isValidMessageID = true;
- property_ExtraElement = NULL;
- isValidExtraElement = true;
- property_MessageID = arg_MessageID;
- property_ExtraElement = arg_ExtraElement;
- }
- eblbasecomponents_apis_ebay::AbstractRequestType::~AbstractRequestType()
- {
- }
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::deserialize(axiom_node_t** dp_parent,bool *dp_is_early_node_valid, bool dont_care_minoccurs)
- {
- axiom_node_t *parent = *dp_parent;
- bool status = AXIS2_SUCCESS;
- const axis2_char_t* text_value = NULL;
- axutil_qname_t *mqname = NULL;
- int i = 0;
- int sequence_broken = 0;
- axiom_node_t *tmp_node = NULL;
- axutil_qname_t *element_qname = NULL;
- axiom_node_t *first_node = NULL;
- bool is_early_node_valid = true;
- axiom_node_t *current_node = NULL;
- axiom_element_t *current_element = NULL;
- while(parent && axiom_node_get_node_type(parent, Environment::getEnv()) != AXIOM_ELEMENT)
- {
- parent = axiom_node_get_next_sibling(parent, Environment::getEnv());
- }
- if (NULL == parent)
- {
- return AXIS2_FAILURE;
- }
- first_node = axiom_node_get_first_child(parent, Environment::getEnv());
- /*
- * building MessageID element
- */
- current_node = first_node;
- is_early_node_valid = false;
- while(current_node && axiom_node_get_node_type(current_node, Environment::getEnv()) != AXIOM_ELEMENT)
- {
- current_node = axiom_node_get_next_sibling(current_node, Environment::getEnv());
- }
- if(current_node != NULL)
- {
- current_element = (axiom_element_t *)axiom_node_get_data_element(current_node, Environment::getEnv());
- mqname = axiom_element_get_qname(current_element, Environment::getEnv(), current_node);
- }
- element_qname = axutil_qname_create(Environment::getEnv(), "MessageID", "urn:ebay:apis:eBLBaseComponents", NULL);
- if (
- (current_node && current_element && (axutil_qname_equals(element_qname, Environment::getEnv(), mqname))))
- {
- if( current_node && current_element && (axutil_qname_equals(element_qname, Environment::getEnv(), mqname)))
- {
- is_early_node_valid = true;
- }
- text_value = axiom_element_get_text(current_element, Environment::getEnv(), current_node);
- if(text_value != NULL)
- {
- status = setMessageID(text_value);
- }
- else
- {
- /*
- * axis2_qname_t *qname = NULL;
- * axiom_attribute_t *the_attri = NULL;
- *
- * qname = axutil_qname_create(Environment::getEnv(), "nil", "http://www.w3.org/2001/XMLSchema-instance", "xsi");
- * the_attri = axiom_element_get_attribute(current_element, Environment::getEnv(), qname);
- */
- /* currently thereis a bug in the axiom_element_get_attribute, so we have to go to this bad method */
- axiom_attribute_t *the_attri = NULL;
- axis2_char_t *attrib_text = NULL;
- axutil_hash_t *attribute_hash = NULL;
- attribute_hash = axiom_element_get_all_attributes(current_element, Environment::getEnv());
- attrib_text = NULL;
- if(attribute_hash)
- {
- axutil_hash_index_t *hi;
- void *val;
- const void *key;
- for (hi = axutil_hash_first(attribute_hash, Environment::getEnv()); hi; hi = axutil_hash_next(Environment::getEnv(), hi))
- {
- axutil_hash_this(hi, &key, NULL, &val);
- if(strstr((axis2_char_t*)key, "nil|http://www.w3.org/2001/XMLSchema-instance"))
- {
- the_attri = (axiom_attribute_t*)val;
- break;
- }
- }
- }
- if(the_attri)
- {
- attrib_text = axiom_attribute_get_value(the_attri, Environment::getEnv());
- }
- else
- {
- /* this is hoping that attribute is stored in "http://www.w3.org/2001/XMLSchema-instance", this happnes when name is in default namespace */
- attrib_text = axiom_element_get_attribute_value_by_name(current_element, Environment::getEnv(), "nil");
- }
- if(attrib_text && 0 == axutil_strcmp(attrib_text, "1"))
- {
- WSF_LOG_ERROR_MSG(Environment::getEnv()->log, WSF_LOG_SI, "NULL value is set to a non nillable element MessageID");
- status = AXIS2_FAILURE;
- }
- else
- {
- /* after all, we found this is a empty string */
- status = setMessageID("");
- }
- }
- if(AXIS2_FAILURE == status)
- {
- WSF_LOG_ERROR_MSG( Environment::getEnv()->log,WSF_LOG_SI,"failed in setting the value for MessageID ");
- if(element_qname)
- {
- axutil_qname_free(element_qname, Environment::getEnv());
- }
- return AXIS2_FAILURE;
- }
- }
- if(element_qname)
- {
- axutil_qname_free(element_qname, Environment::getEnv());
- element_qname = NULL;
- }
- {
- /*
- * building ExtraElement array
- */
- std::vector<wso2wsf::OMElement*>* arr_list =new std::vector<wso2wsf::OMElement*>();
- /*
- * building extraElement element
- */
- /* 'any' arrays are not handling correctly when there are other elements mixed with the 'any' element. */
- for (i = 0, sequence_broken = 0, current_node = (is_early_node_valid?axiom_node_get_next_sibling(current_node, Environment::getEnv()):current_node); !sequence_broken && current_node != NULL;)
- {
- if(axiom_node_get_node_type(current_node, Environment::getEnv()) != AXIOM_ELEMENT)
- {
- current_node =axiom_node_get_next_sibling(current_node, Environment::getEnv());
- is_early_node_valid = false;
- continue;
- }
- is_early_node_valid = true;
- text_value = NULL; /* just to avoid warning */
- {
- axiom_node_t *current_property_node = current_node;
- current_node = axiom_node_get_next_sibling(current_node, Environment::getEnv());
- axiom_node_detach(current_property_node, Environment::getEnv());
- arr_list->push_back(new OMElement(NULL, current_property_node));
- }
- if(AXIS2_FAILURE == status)
- {
- WSF_LOG_ERROR_MSG(Environment::getEnv()->log, WSF_LOG_SI, "failed in setting the value for extraElement ");
- if(element_qname)
- {
- axutil_qname_free(element_qname, Environment::getEnv());
- }
- if(arr_list)
- {
- delete arr_list;
- }
- return false;
- }
- i++;
- }
- if(0 == arr_list->size())
- {
- delete arr_list;
- }
- else
- {
- status = setExtraElement(arr_list);
- }
- }
- if(element_qname)
- {
- axutil_qname_free(element_qname, Environment::getEnv());
- element_qname = NULL;
- }
- return status;
- }
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::isParticle()
- {
- return false;
- }
- void WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::declareParentNamespaces(
- axiom_element_t *parent_element,
- axutil_hash_t *namespaces, int *next_ns_index)
- {
- /* Here this is an empty function, Nothing to declare */
- }
- axiom_node_t* WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::serialize(axiom_node_t *parent,
- axiom_element_t *parent_element,
- int parent_tag_closed,
- axutil_hash_t *namespaces,
- int *next_ns_index)
- {
- axis2_char_t *string_to_stream;
- axiom_node_t *current_node = NULL;
- int tag_closed = 0;
- axiom_namespace_t *ns1 = NULL;
- axis2_char_t *qname_uri = NULL;
- axis2_char_t *qname_prefix = NULL;
- axis2_char_t *p_prefix = NULL;
- int i = 0;
- int count = 0;
- void *element = NULL;
- axis2_char_t *text_value_1;
- axis2_char_t *text_value_1_temp;
- axis2_char_t *text_value_2;
- axis2_char_t *text_value_2_temp;
- axis2_char_t *start_input_str = NULL;
- axis2_char_t *end_input_str = NULL;
- unsigned int start_input_str_len = 0;
- unsigned int end_input_str_len = 0;
- axiom_data_source_t *data_source = NULL;
- axutil_stream_t *stream = NULL;
- current_node = parent;
- data_source = (axiom_data_source_t *)axiom_node_get_data_element(current_node, Environment::getEnv());
- if (!data_source)
- return NULL;
- stream = axiom_data_source_get_stream(data_source, Environment::getEnv()); /* assume parent is of type data source */
- if (!stream)
- return NULL;
- if(!parent_tag_closed)
- {
- string_to_stream = ">";
- axutil_stream_write(stream, Environment::getEnv(), string_to_stream, axutil_strlen(string_to_stream));
- tag_closed = 1;
- }
- if(!(p_prefix = (axis2_char_t*)axutil_hash_get(namespaces, "urn:ebay:apis:eBLBaseComponents", AXIS2_HASH_KEY_STRING)))
- {
- p_prefix = (axis2_char_t*)AXIS2_MALLOC(Environment::getEnv()->allocator, sizeof (axis2_char_t) * ADB_DEFAULT_NAMESPACE_PREFIX_LIMIT);
- sprintf(p_prefix, "n%d", (*next_ns_index)++);
- axutil_hash_set(namespaces, "urn:ebay:apis:eBLBaseComponents", AXIS2_HASH_KEY_STRING, p_prefix);
- axiom_element_declare_namespace_assume_param_ownership(parent_element, Environment::getEnv(), axiom_namespace_create (Environment::getEnv(),
- "urn:ebay:apis:eBLBaseComponents", p_prefix));
- }
- if (!isValidMessageID)
- {
- /* no need to complain for minoccurs=0 element */
- }
- else
- {
- start_input_str = (axis2_char_t*)AXIS2_MALLOC(Environment::getEnv()->allocator, sizeof(axis2_char_t) *
- (4 + axutil_strlen(p_prefix) +
- axutil_strlen("MessageID")));
- /* axutil_strlen("<:>") + 1 = 4 */
- end_input_str = (axis2_char_t*)AXIS2_MALLOC(Environment::getEnv()->allocator, sizeof(axis2_char_t) *
- (5 + axutil_strlen(p_prefix) + axutil_strlen("MessageID")));
- /* axutil_strlen("</:>") + 1 = 5 */
- /*
- * parsing MessageID element
- */
- sprintf(start_input_str, "<%s%sMessageID>",
- p_prefix?p_prefix:"",
- (p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
- start_input_str_len = axutil_strlen(start_input_str);
- sprintf(end_input_str, "</%s%sMessageID>",
- p_prefix?p_prefix:"",
- (p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
- end_input_str_len = axutil_strlen(end_input_str);
- text_value_1 = (axis2_char_t*)property_MessageID.c_str();
- axutil_stream_write(stream, Environment::getEnv(), start_input_str, start_input_str_len);
- text_value_1_temp = axutil_xml_quote_string(Environment::getEnv(), text_value_1, true);
- if (text_value_1_temp)
- {
- axutil_stream_write(stream, Environment::getEnv(), text_value_1_temp, axutil_strlen(text_value_1_temp));
- AXIS2_FREE(Environment::getEnv()->allocator, text_value_1_temp);
- }
- else
- {
- axutil_stream_write(stream, Environment::getEnv(), text_value_1, axutil_strlen(text_value_1));
- }
- axutil_stream_write(stream, Environment::getEnv(), end_input_str, end_input_str_len);
- AXIS2_FREE(Environment::getEnv()->allocator,start_input_str);
- AXIS2_FREE(Environment::getEnv()->allocator,end_input_str);
- }
- p_prefix = NULL;
- if (!isValidExtraElement)
- {
- /* no need to complain for minoccurs=0 element */
- }
- else
- {
- start_input_str = (axis2_char_t*)AXIS2_MALLOC(Environment::getEnv()->allocator, sizeof(axis2_char_t) *
- (4 + axutil_strlen(p_prefix) +
- axutil_strlen("extraElement")));
- /* axutil_strlen("<:>") + 1 = 4 */
- end_input_str = (axis2_char_t*)AXIS2_MALLOC(Environment::getEnv()->allocator, sizeof(axis2_char_t) *
- (5 + axutil_strlen(p_prefix) + axutil_strlen("extraElement")));
- /* axutil_strlen("</:>") + 1 = 5 */
- /*
- * Parsing ExtraElement array
- */
- if (property_ExtraElement != NULL)
- {
- sprintf(start_input_str, "<%s%sextraElement>",
- p_prefix?p_prefix:"",
- (p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
- start_input_str_len = axutil_strlen(start_input_str);
- sprintf(end_input_str, "</%s%sextraElement>",
- p_prefix?p_prefix:"",
- (p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
- end_input_str_len = axutil_strlen(end_input_str);
- count = property_ExtraElement->size();
- for(i = 0; i < count; i++)
- {
- wso2wsf::OMElement* element = (*property_ExtraElement)[i];
- if(NULL == element)
- {
- continue;
- }
- /*
- * parsing extraElement element
- */
- std::string s = element->toString();
- text_value_2 = (axis2_char_t*)(s.c_str());
- axutil_stream_write(stream, Environment::getEnv(), text_value_2, axutil_strlen(text_value_2));
- }
- }
- AXIS2_FREE(Environment::getEnv()->allocator,start_input_str);
- AXIS2_FREE(Environment::getEnv()->allocator,end_input_str);
- }
- return parent;
- }
- /**
- * Getter for MessageID by Property Number 1
- */
- std::string WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::getProperty1()
- {
- return getMessageID();
- }
- /**
- * getter for MessageID.
- */
- std::string WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::getMessageID()
- {
- return property_MessageID;
- }
- /**
- * setter for MessageID
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::setMessageID(
- const std::string arg_MessageID)
- {
- if(isValidMessageID &&
- arg_MessageID == property_MessageID)
- {
- return true;
- }
- resetMessageID();
- property_MessageID = std::string(arg_MessageID.c_str());
- isValidMessageID = true;
- return true;
- }
- /**
- * resetter for MessageID
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::resetMessageID()
- {
- int i = 0;
- int count = 0;
- isValidMessageID = false;
- return true;
- }
- /**
- * Check whether MessageID is nill
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::isMessageIDNil()
- {
- return !isValidMessageID;
- }
- /**
- * Set MessageID to nill (currently the same as reset)
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::setMessageIDNil()
- {
- return resetMessageID();
- }
- /**
- * Getter for extraElement by Property Number 2
- */
- std::vector<wso2wsf::OMElement*>* WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::getProperty2()
- {
- return getExtraElement();
- }
- /**
- * getter for extraElement.
- */
- std::vector<wso2wsf::OMElement*>* WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::getExtraElement()
- {
- return property_ExtraElement;
- }
- /**
- * setter for extraElement
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::setExtraElement(
- std::vector<wso2wsf::OMElement*>* arg_ExtraElement)
- {
- int size = 0;
- int i = 0;
- bool non_nil_exists = false;
- if(isValidExtraElement &&
- arg_ExtraElement == property_ExtraElement)
- {
- return true;
- }
- size = arg_ExtraElement->size();
- if (size < 0)
- {
- WSF_LOG_ERROR_MSG( Environment::getEnv()->log,WSF_LOG_SI,"extraElement has less than minOccurs(0)");
- return false;
- }
- for(i = 0; i < size; i ++ )
- {
- if(NULL != (*arg_ExtraElement)[i])
- {
- non_nil_exists = true;
- break;
- }
- }
- resetExtraElement();
- if(NULL == arg_ExtraElement)
- {
- /* We are already done */
- return true;
- }
- property_ExtraElement = arg_ExtraElement;
- if(non_nil_exists)
- {
- isValidExtraElement = true;
- }
- return true;
- }
- /**
- * Get ith element of extraElement.
- */
- wso2wsf::OMElement* WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::getExtraElementAt(int i)
- {
- wso2wsf::OMElement* ret_val;
- if(property_ExtraElement == NULL)
- {
- return (wso2wsf::OMElement*)0;
- }
- ret_val = (*property_ExtraElement)[i];
- return ret_val;
- }
- /**
- * Set the ith element of extraElement.
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::setExtraElementAt(int i,
- wso2wsf::OMElement* arg_ExtraElement)
- {
- wso2wsf::OMElement* element;
- int size = 0;
- int non_nil_count;
- bool non_nil_exists = false;
- if( isValidExtraElement &&
- property_ExtraElement &&
- arg_ExtraElement == (*property_ExtraElement)[i])
- {
- return AXIS2_SUCCESS;
- }
- non_nil_exists = true;
- if(property_ExtraElement == NULL)
- {
- property_ExtraElement = new std::vector<wso2wsf::OMElement*>();
- }
- else{
- /* check whether there already exist an element */
- element = (*property_ExtraElement)[i];
- }
- if(NULL != element)
- {
- // TODO Clear om Element
- delete element;
- }
- if(!non_nil_exists)
- {
- isValidExtraElement = true;
- (*property_ExtraElement)[i]= NULL;
- return AXIS2_SUCCESS;
- }
- (*property_ExtraElement)[i] = arg_ExtraElement;
- isValidExtraElement = true;
- return AXIS2_SUCCESS;
- }
- /**
- * Add to extraElement.
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::addExtraElement(
- wso2wsf::OMElement* arg_ExtraElement)
- {
- if( NULL == arg_ExtraElement
- )
- {
- return true;
- }
- if(property_ExtraElement == NULL)
- {
- property_ExtraElement = new std::vector<wso2wsf::OMElement*>();
- }
- property_ExtraElement->push_back(arg_ExtraElement);
- isValidExtraElement = true;
- return true;
- }
- /**
- * Get the size of the extraElement array.
- */
- int WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::sizeofExtraElement()
- {
- if(property_ExtraElement == NULL)
- {
- return 0;
- }
- return property_ExtraElement->size();
- }
- /**
- * remove the ith element, same as set_nil_at.
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::removeExtraElementAt(int i)
- {
- return setExtraElementNilAt(i);
- }
- /**
- * resetter for extraElement
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::resetExtraElement()
- {
- int i = 0;
- int count = 0;
- if (property_ExtraElement != NULL)
- {
- std::vector<wso2wsf::OMElement*>::iterator it = property_ExtraElement->begin();
- for( ; it < property_ExtraElement->end() ; ++it)
- {
- wso2wsf::OMElement* element = *it;
- if(element != NULL)
- {
- delete element;
- element = NULL;
- }
- }
- }
- if(NULL != property_ExtraElement)
- delete property_ExtraElement;
- isValidExtraElement = false;
- return true;
- }
- /**
- * Check whether extraElement is nill
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::isExtraElementNil()
- {
- return !isValidExtraElement;
- }
- /**
- * Set extraElement to nill (currently the same as reset)
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::setExtraElementNil()
- {
- return resetExtraElement();
- }
- /**
- * Check whether extraElement is nill at i
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::isExtraElementNilAt(int i)
- {
- return (isValidExtraElement == false ||
- NULL == property_ExtraElement ||
- NULL == (*property_ExtraElement)[i]);
- }
- /**
- * Set extraElement to nil at i
- */
- bool WSF_CALL
- eblbasecomponents_apis_ebay::AbstractRequestType::setExtraElementNilAt(int i)
- {
- int size = 0;
- int j;
- bool non_nil_exists = false;
- int k = 0;
- if(property_ExtraElement == NULL ||
- isValidExtraElement == false)
- {
- non_nil_exists = false;
- }
- else
- {
- size = property_ExtraElement->size();
- for(j = 0, k = 0; j < size; j ++ )
- {
- if(i == j) continue;
- if(NULL != (*property_ExtraElement)[i])
- {
- k++;
- non_nil_exists = true;
- if( k >= 0)
- {
- break;
- }
- }
- }
- }
- if( k < 0)
- {
- WSF_LOG_ERROR_MSG(Environment::getEnv()->log, WSF_LOG_SI, "Size of the array of extraElement is beinng set to be smaller than the specificed number of minOccurs(0)");
- return AXIS2_FAILURE;
- }
- if(property_ExtraElement == NULL)
- {
- isValidExtraElement = false;
- return true;
- }
- /* check whether there already exist an element */
- wso2wsf::OMElement* element = (*property_ExtraElement)[i];
- if(NULL != element)
- {
- delete element;
- }
- if(!non_nil_exists)
- {
- isValidExtraElement = false;
- (*property_ExtraElement)[i] = NULL;
- return AXIS2_SUCCESS;
- }
- (*property_ExtraElement)[i] = NULL;
- return AXIS2_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement