

        /**
        * adb_UpdateLocoStatusResponse.c
        *
        * This file was auto-generated from WSDL
        * by the Apache Axis2/C Native version: 1.0.0
        */

        #include "adb_UpdateLocoStatusResponse.h"

        struct adb_UpdateLocoStatusResponse
        {
            int property_result;
            axis2_bool_t is_valid_result;
        };

        adb_UpdateLocoStatusResponse_t* AXIS2_CALL
        adb_UpdateLocoStatusResponse_create(const axutil_env_t *env)
        {
            adb_UpdateLocoStatusResponse_t *_this = NULL;
            _this = (adb_UpdateLocoStatusResponse_t *) AXIS2_MALLOC(env->allocator, sizeof(adb_UpdateLocoStatusResponse_t));
            if(NULL == _this) return NULL;
            _this->property_result = 0;
            _this->is_valid_result = AXIS2_FALSE;
            return _this;
        }

        axis2_status_t AXIS2_CALL
        adb_UpdateLocoStatusResponse_free(adb_UpdateLocoStatusResponse_t* _this, const axutil_env_t *env)
        {
            if(_this) AXIS2_FREE(env->allocator, _this);
            return AXIS2_SUCCESS;
        }

        int AXIS2_CALL
        adb_UpdateLocoStatusResponse_get_result(adb_UpdateLocoStatusResponse_t* _this, const axutil_env_t *env)
        {
            return _this ? _this->property_result : 0;
        }

        axis2_status_t AXIS2_CALL
        adb_UpdateLocoStatusResponse_set_result(adb_UpdateLocoStatusResponse_t* _this, const axutil_env_t *env, const int arg_result)
        {
            if(_this) {
                _this->property_result = arg_result;
                _this->is_valid_result = AXIS2_TRUE;
            }
            return AXIS2_SUCCESS;
        }

        adb_UpdateLocoStatusResponse_t* AXIS2_CALL
        adb_UpdateLocoStatusResponse_create_from_node(const axutil_env_t *env, axiom_node_t *node,
                               int dont_care_minoccurs)
        {
            adb_UpdateLocoStatusResponse_t *adb_obj = NULL;
            axiom_element_t *element = NULL;
            axis2_char_t *attr_value = NULL;
            
            AXIS2_PARAM_CHECK(env->error, node, NULL);
            
            element = axiom_node_get_data_element(node, env);
            if (!element) {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to get element from node");
                /* AXIS2C-1613 FIX: Set error before returning NULL */
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_SUCH_ELEMENT, AXIS2_FAILURE);
                return NULL;
            }
            
            adb_obj = adb_UpdateLocoStatusResponse_create(env);
            if (!adb_obj) {
                /* AXIS2C-1613 FIX: Set error before returning NULL */
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                return NULL;
            }
            
            /* AXIS2C-1614: Response validation - same pattern as request classes */
            attr_value = axiom_element_get_attribute_value_by_name(element, env, "status");
            if (!attr_value && !dont_care_minoccurs) {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "required attribute status missing");
                /* AXIS2C-1613 FIX: Set error before returning NULL */
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_SUCH_ELEMENT, AXIS2_FAILURE);
                adb_UpdateLocoStatusResponse_free(adb_obj, env);
                return NULL;
            }
            
            /* TODO: Parse return value from XML */
            
            return adb_obj;
        }

