Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 88461 invoked from network); 10 May 2006 06:40:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 10 May 2006 06:40:11 -0000 Received: (qmail 5493 invoked by uid 500); 10 May 2006 06:40:06 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 5410 invoked by uid 500); 10 May 2006 06:40:05 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 5399 invoked by uid 500); 10 May 2006 06:40:05 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 5370 invoked by uid 99); 10 May 2006 06:40:05 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 May 2006 23:40:05 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 09 May 2006 23:40:02 -0700 Received: (qmail 87775 invoked by uid 65534); 10 May 2006 06:39:41 -0000 Message-ID: <20060510063941.87772.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r405653 [1/2] - in /webservices/axis2/trunk/c/modules/xml/xml_schema: ./ include/xml_schema/ Date: Wed, 10 May 2006 06:39:36 -0000 To: axis2-cvs@ws.apache.org From: damitha@apache.org X-Mailer: svnmailer-1.0.8 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: damitha Date: Tue May 9 23:39:32 2006 New Revision: 405653 URL: http://svn.apache.org/viewcvs?rev=405653&view=rev Log: More fixes Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_annotation.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_any.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_app_info.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_content_processing.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_defines.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_enum.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_base.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_ref.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_obj.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_particle.h webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_use.h webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_enum.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_collection.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_particle.c webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_use.c Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_annotation.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_annotation.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_annotation.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_annotation.h Tue May 9 23:39:32 2006 @@ -22,6 +22,7 @@ * @brief Axis2 Xml Schema Annotation Interface */ +#include #include #include @@ -47,6 +48,16 @@ axis2_status_t (AXIS2_CALL * free) (void *annotation, axis2_env_t **env); + + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *annotation, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *annotation, + axis2_env_t **env); axis2_xml_schema_obj_t *(AXIS2_CALL * get_base_impl) (void *annotation, @@ -80,6 +91,14 @@ #define AXIS2_XML_SCHEMA_ANNOTATION_FREE(annotation, env) \ (((axis2_xml_schema_annotation_t *) annotation)->ops->\ free(annotation, env)) + +#define AXIS2_XML_SCHEMA_ANNOTATION_SUPER_OBJS(annotation, env) \ + (((axis2_xml_schema_annotation_t *) annotation)->ops->\ + super_objs(annotation, env)) + +#define AXIS2_XML_SCHEMA_ANNOTATION_TYPE(annotation, env) \ + (((axis2_xml_schema_annotation_t *) annotation)->ops->\ + type(annotation, env)) #define AXIS2_XML_SCHEMA_ANNOTATION_GET_ITEMS(annotation, env) \ (((axis2_xml_schema_annotation_t *) annotation)->ops->\ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_any.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_any.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_any.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_any.h Tue May 9 23:39:32 2006 @@ -26,6 +26,7 @@ * */ +#include #include #include @@ -50,7 +51,18 @@ * @return status code */ axis2_status_t (AXIS2_CALL * - free) (void *any, + free) ( + void *any, + axis2_env_t **env); + + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *any, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *any, axis2_env_t **env); axis2_xml_schema_particle_t *(AXIS2_CALL * @@ -90,13 +102,19 @@ */ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_any_resolve_methods( - axis2_xml_schema_any_t *any, - axis2_env_t **env, - axis2_xml_schema_any_t *any_impl, - axis2_hash_t *methods); + axis2_xml_schema_any_t *any, + axis2_env_t **env, + axis2_xml_schema_any_t *any_impl, + axis2_hash_t *methods); #define AXIS2_XML_SCHEMA_ANY_FREE(any, env) \ (((axis2_xml_schema_any_t *) any)->ops->free(any, env)) + +#define AXIS2_XML_SCHEMA_ANY_SUPER_OBJS(any, env) \ + (((axis2_xml_schema_any_t *) any)->ops->super_objs(any, env)) + +#define AXIS2_XML_SCHEMA_ANY_TYPE(any, env) \ + (((axis2_xml_schema_any_t *) any)->ops->type(any, env)) #define AXIS2_XML_SCHEMA_ANY_GET_BASE_IMPL(any, env) \ (((axis2_xml_schema_any_t *) any)->ops->get_base_impl(any, env)) Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_app_info.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_app_info.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_app_info.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_app_info.h Tue May 9 23:39:32 2006 @@ -25,6 +25,7 @@ * */ +#include #include #include @@ -48,7 +49,18 @@ * @return status code */ axis2_status_t (AXIS2_CALL * - free) (void *app_info, + free) ( + void *app_info, + axis2_env_t **env); + + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *app_info, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *app_info, axis2_env_t **env); axis2_xml_schema_obj_t *(AXIS2_CALL * @@ -91,14 +103,22 @@ */ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_app_info_resolve_methods( - axis2_xml_schema_app_info_t *app_info, - axis2_env_t **env, - axis2_xml_schema_app_info_t *app_info_impl, - axis2_hash_t *methods); + axis2_xml_schema_app_info_t *app_info, + axis2_env_t **env, + axis2_xml_schema_app_info_t *app_info_impl, + axis2_hash_t *methods); #define AXIS2_XML_SCHEMA_APP_INFO_FREE(app_info, env) \ (((axis2_xml_schema_app_info_t *) app_info)->ops->\ free(app_info, env)) + +#define AXIS2_XML_SCHEMA_APP_INFO_SUPER_OBJS(app_info, env) \ + (((axis2_xml_schema_app_info_t *) app_info)->ops->\ + super_objs(app_info, env)) + +#define AXIS2_XML_SCHEMA_APP_INFO_TYPE(app_info, env) \ + (((axis2_xml_schema_app_info_t *) app_info)->ops->\ + type(app_info, env)) #define AXIS2_XML_SCHEMA_APP_INFO_GET_SOURCE(app_info, env) \ (((axis2_xml_schema_app_info_t *) app_info)->ops->\ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_content_processing.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_content_processing.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_content_processing.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_content_processing.h Tue May 9 23:39:32 2006 @@ -24,6 +24,7 @@ * */ +#include #include /** @defgroup axis2_xml_schema_content_processing Xml Schema Content Processing @@ -52,6 +53,14 @@ free) (void *content_processing, axis2_env_t **env); + axis2_hash_t *(AXIS2_CALL * + super_objs) (void *content_processing, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) (void *content_processing, + axis2_env_t **env); + axis2_xml_schema_enum_t *(AXIS2_CALL * get_base_impl) (void *content_processing, axis2_env_t **env); @@ -85,6 +94,14 @@ #define AXIS2_XML_SCHEMA_CONTENT_PROCESSING_FREE(content_processing, env) \ (((axis2_xml_schema_content_processing_t *) content_processing)->ops->\ free(content_processing, env)) + +#define AXIS2_XML_SCHEMA_CONTENT_PROCESSING_SUPER_OBJS(content_processing, env) \ + (((axis2_xml_schema_content_processing_t *) content_processing)->ops->\ + super_objs(content_processing, env)) + +#define AXIS2_XML_SCHEMA_CONTENT_PROCESSING_TYPE(content_processing, env) \ + (((axis2_xml_schema_content_processing_t *) content_processing)->ops->\ + type(content_processing, env)) #define AXIS2_XML_SCHEMA_CONTENT_PROCESSING_GET_BASE_IMPL(content_processing, env) \ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_defines.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_defines.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_defines.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_defines.h Tue May 9 23:39:32 2006 @@ -47,9 +47,18 @@ { AXIS2_XML_SCHEMA = 0, AXIS2_XML_SCHEMA_ALL, - AXIS2_XML_SCHEMA_GROUP_BASE, AXIS2_XML_SCHEMA_ANNOTATED, - AXIS2_XML_SCHEMA_OBJ + AXIS2_XML_SCHEMA_ANNOTATION, + AXIS2_XML_SCHEMA_OBJ, + AXIS2_XML_SCHEMA_PARTICLE, + AXIS2_XML_SCHEMA_ENUM, + AXIS2_XML_SCHEMA_USE, + AXIS2_XML_SCHEMA_ANY, + AXIS2_XML_SCHEMA_CONTENT_PROCESSING, + AXIS2_XML_SCHEMA_APP_INFO, + AXIS2_XML_SCHEMA_GROUP, + AXIS2_XML_SCHEMA_GROUP_BASE, + AXIS2_XML_SCHEMA_GROUP_REF } axis2_xml_schema_types_t; /** @} */ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_enum.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_enum.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_enum.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_enum.h Tue May 9 23:39:32 2006 @@ -29,6 +29,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" @@ -50,7 +51,18 @@ * @return status code */ axis2_status_t (AXIS2_CALL * - free) (void *schema_enum, + free) ( + void *schema_enum, + axis2_env_t **env); + + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *schema_enum, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *schema_enum, axis2_env_t **env); axis2_char_t * (AXIS2_CALL * @@ -100,6 +112,12 @@ #define AXIS2_XML_SCHEMA_ENUM_FREE(schema_enum, env) \ (((axis2_xml_schema_enum_t *) schema_enum)->ops->free (schema_enum, env)) + +#define AXIS2_XML_SCHEMA_ENUM_SUPER_OBJS(schema_enum, env) \ + (((axis2_xml_schema_enum_t *) schema_enum)->ops->super_objs (schema_enum, env)) + +#define AXIS2_XML_SCHEMA_ENUM_TYPE(schema_enum, env) \ + (((axis2_xml_schema_enum_t *) schema_enum)->ops->type (schema_enum, env)) #define AXIS2_XML_SCHEMA_ENUM_GET_VALUE(schema_enum, env) \ (((axis2_xml_schema_enum_t *) schema_enum)->ops->get_value \ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group.h Tue May 9 23:39:32 2006 @@ -26,6 +26,7 @@ * Represents the World Wide Web Consortium (W3C) group element. */ +#include #include #include @@ -53,6 +54,14 @@ free) (void *group, axis2_env_t **env); + axis2_hash_t *(AXIS2_CALL * + super_objs) (void *group, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) (void *group, + axis2_env_t **env); + axis2_xml_schema_annotated_t *(AXIS2_CALL * get_base_impl) (void *group, axis2_env_t **env); @@ -101,6 +110,14 @@ #define AXIS2_XML_SCHEMA_GROUP_FREE(group, env) \ (((axis2_xml_schema_group_t *) group)->ops->\ free(group, env)) + +#define AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env) \ + (((axis2_xml_schema_group_t *) group)->ops->\ + super_objs(group, env)) + +#define AXIS2_XML_SCHEMA_GROUP_TYPE(group, env) \ + (((axis2_xml_schema_group_t *) group)->ops->\ + type(group, env)) #define AXIS2_XML_SCHEMA_GROUP_GET_BASE_IMPL(group, env) \ (((axis2_xml_schema_group_t *) group)->ops->\ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_base.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_base.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_base.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_base.h Tue May 9 23:39:32 2006 @@ -25,6 +25,7 @@ * */ +#include #include #include @@ -53,6 +54,14 @@ free) (void *group_base, axis2_env_t **env); + axis2_hash_t *(AXIS2_CALL * + super_objs) (void *group_base, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) (void *group_base, + axis2_env_t **env); + axis2_xml_schema_particle_t *(AXIS2_CALL * get_base_impl) (void *group_base, axis2_env_t **env); @@ -84,6 +93,12 @@ #define AXIS2_XML_SCHEMA_GROUP_BASE_FREE(group_base, env) \ (((axis2_xml_schema_group_base_t *) group_base)->ops->free(group_base, env)) + +#define AXIS2_XML_SCHEMA_GROUP_BASE_SUPER_OBJS(group_base, env) \ + (((axis2_xml_schema_group_base_t *) group_base)->ops->super_objs(group_base, env)) + +#define AXIS2_XML_SCHEMA_GROUP_BASE_TYPE(group_base, env) \ + (((axis2_xml_schema_group_base_t *) group_base)->ops->type(group_base, env)) #define AXIS2_XML_SCHEMA_GROUP_BASE_GET_BASE_IMPL(group_base, env) \ (((axis2_xml_schema_group_base_t *) group_base)->ops->get_base_impl(group_base, env)) Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_ref.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_ref.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_ref.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_group_ref.h Tue May 9 23:39:32 2006 @@ -25,6 +25,7 @@ * Web Consortium (W3C) group element with ref attribute. */ +#include #include #include #include @@ -53,6 +54,16 @@ free) (void *group_ref, axis2_env_t **env); + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *group_ref, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *group_ref, + axis2_env_t **env); + axis2_xml_schema_particle_t *(AXIS2_CALL * get_base_impl) (void *group_ref, axis2_env_t **env); @@ -97,6 +108,12 @@ #define AXIS2_XML_SCHEMA_GROUP_REF_FREE(group_ref, env) \ (((axis2_xml_schema_group_ref_t *) group_ref)->ops->\ free(group_ref, env)) + +#define AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env) \ + (((axis2_xml_schema_group_ref_t *) group_ref)->ops->super_objs(group_ref, env)) + +#define AXIS2_XML_SCHEMA_GROUP_REF_TYPE(group_ref, env) \ + (((axis2_xml_schema_group_ref_t *) group_ref)->ops->type(group_ref, env)) #define AXIS2_XML_SCHEMA_GROUP_REF_GET_BASE_IMPL(group_ref, env) \ (((axis2_xml_schema_group_ref_t *) group_ref)->ops->\ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_obj.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_obj.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_obj.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_obj.h Tue May 9 23:39:32 2006 @@ -29,6 +29,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" @@ -50,7 +51,18 @@ * @return status code */ axis2_status_t (AXIS2_CALL * - free) (void *obj, + free) ( + void *obj, + axis2_env_t **env); + + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *obj, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *obj, axis2_env_t **env); int (AXIS2_CALL * @@ -106,6 +118,12 @@ #define AXIS2_XML_SCHEMA_OBJ_FREE(obj, env) \ (((axis2_xml_schema_obj_t *) obj)->ops->free (obj, env)) + +#define AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env) \ + (((axis2_xml_schema_obj_t *) obj)->ops->super_objs (obj, env)) + +#define AXIS2_XML_SCHEMA_OBJ_TYPE(obj, env) \ + (((axis2_xml_schema_obj_t *) obj)->ops->type (obj, env)) #define AXIS2_XML_SCHEMA_OBJ_GET_LINE_NUM(obj, env) \ (((axis2_xml_schema_obj_t *) obj)->ops->get_line_num (obj, env)) Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_particle.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_particle.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_particle.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_particle.h Tue May 9 23:39:32 2006 @@ -23,6 +23,7 @@ * Base class for all particle types. */ +#include #include #include @@ -48,7 +49,18 @@ * @return status code */ axis2_status_t (AXIS2_CALL * - free) (void *particle, + free) ( + void *particle, + axis2_env_t **env); + + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *particle, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *particle, axis2_env_t **env); axis2_xml_schema_annotated_t *(AXIS2_CALL * @@ -104,6 +116,14 @@ #define AXIS2_XML_SCHEMA_PARTICLE_FREE(particle, env) \ (((axis2_xml_schema_particle_t *) particle)->ops->\ free(particle, env)) + +#define AXIS2_XML_SCHEMA_PARTICLE_SUPER_OBJS(particle, env) \ + (((axis2_xml_schema_particle_t *) particle)->ops->\ + super_objs(particle, env)) + +#define AXIS2_XML_SCHEMA_PARTICLE_TYPE(particle, env) \ + (((axis2_xml_schema_particle_t *) particle)->ops->\ + type(particle, env)) #define AXIS2_XML_SCHEMA_PARTICLE_GET_BASE_IMPL(particle, env) \ (((axis2_xml_schema_particle_t *) particle)->ops->\ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_use.h URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_use.h?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_use.h (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_use.h Tue May 9 23:39:32 2006 @@ -24,6 +24,7 @@ * */ +#include #include /** @defgroup axis2_xml_schema_use Xml Schema Use @@ -49,6 +50,16 @@ free) (void *use, axis2_env_t **env); + axis2_hash_t *(AXIS2_CALL * + super_objs) ( + void *use, + axis2_env_t **env); + + axis2_xml_schema_types_t (AXIS2_CALL * + type) ( + void *use, + axis2_env_t **env); + axis2_xml_schema_enum_t *(AXIS2_CALL * get_base_impl) (void *use, axis2_env_t **env); @@ -74,13 +85,19 @@ */ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_use_resolve_methods( - axis2_xml_schema_use_t *use, - axis2_env_t **env, - axis2_xml_schema_use_t *use_impl, - axis2_hash_t *methods); + axis2_xml_schema_use_t *use, + axis2_env_t **env, + axis2_xml_schema_use_t *use_impl, + axis2_hash_t *methods); #define AXIS2_XML_SCHEMA_USE_FREE(use, env) \ (((axis2_xml_schema_use_t *) use)->ops->free(use, env)) + +#define AXIS2_XML_SCHEMA_USE_SUPER_OBJS(use, env) \ + (((axis2_xml_schema_use_t *) use)->ops->super_objs(use, env)) + +#define AXIS2_XML_SCHEMA_USE_TYPE(use, env) \ + (((axis2_xml_schema_use_t *) use)->ops->type(use, env)) #define AXIS2_XML_SCHEMA_USE_GET_BASE_IMPL(use, env) \ (((axis2_xml_schema_use_t *) use)->ops->get_base_impl(use, env)) Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c Tue May 9 23:39:32 2006 @@ -26,12 +26,14 @@ struct axis2_xml_schema_annotation_impl { axis2_xml_schema_annotation_t annotation; + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; + axis2_hash_t *methods; axis2_xml_schema_obj_t *schema_obj; axis2_hash_t *items; - axis2_hash_t *methods; }; #define AXIS2_INTF_TO_IMPL(annotation) \ @@ -39,8 +41,19 @@ /*************** function prototypes *****************************************/ axis2_status_t AXIS2_CALL -axis2_xml_schema_annotation_free(void *annotation, - axis2_env_t **env); +axis2_xml_schema_annotation_free( + void *annotation, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_annotation_super_objs( + void *annotation, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_annotation_type( + void *annotation, + axis2_env_t **env); axis2_xml_schema_obj_t *AXIS2_CALL axis2_xml_schema_annotation_get_base_impl(void *annotation, @@ -66,6 +79,8 @@ return NULL; } annotation_impl->schema_obj = NULL; + annotation_impl->obj_type = AXIS2_XML_SCHEMA_ANNOTATION; + annotation_impl->super = NULL; annotation_impl->methods = NULL; annotation_impl->items = NULL; annotation_impl->annotation.base.ops = NULL; @@ -82,6 +97,10 @@ annotation_impl->annotation.ops->free = axis2_xml_schema_annotation_free; + annotation_impl->annotation.ops->super_objs = + axis2_xml_schema_annotation_super_objs; + annotation_impl->annotation.ops->type = + axis2_xml_schema_annotation_type; annotation_impl->annotation.ops->get_base_impl = axis2_xml_schema_annotation_get_base_impl; annotation_impl->annotation.ops->get_items = @@ -104,6 +123,10 @@ } axis2_hash_set(annotation_impl->methods, "free", AXIS2_HASH_KEY_STRING, axis2_xml_schema_annotation_free); + axis2_hash_set(annotation_impl->methods, "super_objs", + AXIS2_HASH_KEY_STRING, axis2_xml_schema_annotation_super_objs); + axis2_hash_set(annotation_impl->methods, "type", + AXIS2_HASH_KEY_STRING, axis2_xml_schema_annotation_type); axis2_hash_set(annotation_impl->methods, "get_items", AXIS2_HASH_KEY_STRING, axis2_xml_schema_annotation_get_items); @@ -115,6 +138,19 @@ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } + + annotation_impl->super = axis2_hash_make(env); + if(!annotation_impl->super) + { + axis2_xml_schema_annotation_free(&(annotation_impl->annotation), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(annotation_impl->methods, "AXIS2_XML_SCHEMA_ANNOTATION", + AXIS2_HASH_KEY_STRING, &(annotation_impl->annotation)); + axis2_hash_set(annotation_impl->methods, "AXIS2_XML_SCHEMA_OBJ", + AXIS2_HASH_KEY_STRING, annotation_impl->schema_obj); + status = axis2_xml_schema_obj_resolve_methods(&(annotation_impl->annotation.base), env, annotation_impl->schema_obj, annotation_impl->methods); return &(annotation_impl->annotation); @@ -135,6 +171,12 @@ annotation_impl->items = NULL; } + if(NULL != annotation_impl->super) + { + axis2_hash_free(annotation_impl->super, env); + annotation_impl->super = NULL; + } + if(NULL != annotation_impl->methods) { axis2_hash_free(annotation_impl->methods, env); @@ -179,10 +221,10 @@ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_annotation_resolve_methods( - axis2_xml_schema_annotation_t *annotation, - axis2_env_t **env, - axis2_xml_schema_annotation_t *annotation_impl, - axis2_hash_t *methods) + axis2_xml_schema_annotation_t *annotation, + axis2_env_t **env, + axis2_xml_schema_annotation_t *annotation_impl, + axis2_hash_t *methods) { axis2_xml_schema_annotation_impl_t *annotation_impl_l = NULL; @@ -196,10 +238,15 @@ sizeof(axis2_xml_schema_annotation_ops_t)); annotation->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); + annotation->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + annotation->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); - annotation->ops->get_base_impl = - annotation_impl_l->annotation.ops->get_base_impl; - annotation->ops->get_items = + annotation->ops->get_items = axis2_hash_get(methods, "get_items", + AXIS2_HASH_KEY_STRING); + if(!annotation->ops->get_items) + annotation->ops->get_items = annotation_impl_l->annotation.ops->get_items; return axis2_xml_schema_obj_resolve_methods(&(annotation->base), @@ -210,6 +257,13 @@ axis2_xml_schema_annotation_get_items(void *annotation, axis2_env_t **env) { - return AXIS2_INTF_TO_IMPL(annotation)->items; + axis2_xml_schema_annotation_impl_t *annotation_impl = NULL; + axis2_hash_t *super = NULL; + + super = AXIS2_XML_SCHEMA_ANNOTATION_SUPER_OBJS(annotation, env); + annotation_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ANNOTATION", AXIS2_HASH_KEY_STRING)); + + return annotation_impl->items; } Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c Tue May 9 23:39:32 2006 @@ -26,9 +26,9 @@ struct axis2_xml_schema_any_impl { axis2_xml_schema_any_t any; - axis2_xml_schema_particle_t *particle; - + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_hash_t *methods; axis2_xml_schema_content_processing_t *process_content; @@ -42,8 +42,19 @@ /******************* function prototypes **********************************/ axis2_status_t AXIS2_CALL -axis2_xml_schema_any_free(void *any, - axis2_env_t **env); +axis2_xml_schema_any_free( + void *any, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_any_super_objs( + void *any, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_any_type( + void *any, + axis2_env_t **env); axis2_xml_schema_particle_t *AXIS2_CALL axis2_xml_schema_any_get_base_impl(void *any, @@ -86,9 +97,10 @@ any_impl->any.base.ops = NULL; any_impl->any.ops = NULL; any_impl->ns = NULL; + any_impl->obj_type = AXIS2_XML_SCHEMA_ANY; + any_impl->super = NULL; any_impl->particle = NULL; any_impl->process_content = NULL; - any_impl->methods = NULL; any_impl->any.ops = AXIS2_MALLOC((*env)->allocator, sizeof(axis2_xml_schema_any_ops_t)); @@ -108,6 +120,10 @@ } any_impl->any.ops->free = axis2_xml_schema_any_free; + any_impl->any.ops->super_objs = + axis2_xml_schema_any_super_objs; + any_impl->any.ops->type = + axis2_xml_schema_any_type; any_impl->any.ops->get_base_impl = axis2_xml_schema_any_get_base_impl; any_impl->any.ops->get_namespace = @@ -126,7 +142,11 @@ return NULL; } axis2_hash_set(any_impl->methods, "free", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_any_super_objs); + axis2_hash_set(any_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, axis2_xml_schema_any_free); + axis2_hash_set(any_impl->methods, "type", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_any_type); axis2_hash_set(any_impl->methods, "get_namespace", AXIS2_HASH_KEY_STRING, axis2_xml_schema_any_get_namespace); axis2_hash_set(any_impl->methods, "set_namespace", AXIS2_HASH_KEY_STRING, @@ -137,12 +157,23 @@ AXIS2_HASH_KEY_STRING, axis2_xml_schema_any_set_process_content); any_impl->particle = axis2_xml_schema_particle_create(env); - if(!any_impl->methods) + if(!any_impl->particle) { axis2_xml_schema_any_free(&(any_impl->any), env); AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } + any_impl->super = axis2_hash_make(env); + if(!any_impl->super) + { + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(any_impl->super, "AXIS_XML_SCHEMA_ANY", AXIS2_HASH_KEY_STRING, + &(any_impl->any)); + axis2_hash_set(any_impl->super, "AXIS_XML_SCHEMA_PARTICLE", AXIS2_HASH_KEY_STRING, + any_impl->particle); + status = axis2_xml_schema_particle_resolve_methods( &(any_impl->any.base), env, any_impl->particle, any_impl->methods); @@ -170,6 +201,12 @@ any_impl->process_content = NULL; } + if(NULL != any_impl->super) + { + axis2_hash_free(any_impl->super, env); + any_impl->super = NULL; + } + if(NULL != any_impl->methods) { axis2_hash_free(any_impl->methods, env); @@ -198,6 +235,29 @@ return AXIS2_SUCCESS; } +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_any_type(void *any, + axis2_env_t **env) +{ + axis2_xml_schema_any_impl_t *any_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + any_impl = AXIS2_INTF_TO_IMPL(any); + return any_impl->obj_type; +} + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_any_super_objs( + void *any, + axis2_env_t **env) +{ + axis2_xml_schema_any_impl_t *any_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + any_impl = AXIS2_INTF_TO_IMPL(any); + return any_impl->super; +} + axis2_xml_schema_particle_t *AXIS2_CALL axis2_xml_schema_any_get_base_impl(void *any, axis2_env_t **env) @@ -211,10 +271,10 @@ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_any_resolve_methods( - axis2_xml_schema_any_t *any, - axis2_env_t **env, - axis2_xml_schema_any_t *any_impl, - axis2_hash_t *methods) + axis2_xml_schema_any_t *any, + axis2_env_t **env, + axis2_xml_schema_any_t *any_impl, + axis2_hash_t *methods) { axis2_xml_schema_any_impl_t *any_impl_l = NULL; @@ -228,14 +288,32 @@ sizeof(axis2_xml_schema_any_ops_t)); any->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - any->ops->get_base_impl = - any_impl_l->any.ops->get_base_impl; - any->ops->get_namespace = + any->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + any->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); + + any->ops->get_namespace = axis2_hash_get(methods, + "get_namespace", AXIS2_HASH_KEY_STRING); + if(!any->ops->get_namespace) + any->ops->get_namespace = any_impl_l->any.ops->get_namespace; + + any->ops->set_namespace = axis2_hash_get(methods, + "set_namespace", AXIS2_HASH_KEY_STRING); + if(!any->ops->set_namespace) any->ops->set_namespace = any_impl_l->any.ops->set_namespace; + + any->ops->get_process_content = axis2_hash_get(methods, + "get_process_content", AXIS2_HASH_KEY_STRING); + if(!any->ops->get_process_content) any->ops->get_process_content = any_impl_l->any.ops->get_process_content; + + any->ops->set_process_content = axis2_hash_get(methods, + "set_process_content", AXIS2_HASH_KEY_STRING); + if(!any->ops->set_process_content) any->ops->set_process_content = any_impl_l->any.ops->set_process_content; @@ -247,7 +325,14 @@ axis2_xml_schema_any_get_namespace(void *any, axis2_env_t **env) { - return AXIS2_INTF_TO_IMPL(any)->ns; + axis2_xml_schema_any_impl_t *any_impl = NULL; + axis2_hash_t *super = NULL; + + super = AXIS2_XML_SCHEMA_ANY_SUPER_OBJS(any, env); + any_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ANY", AXIS2_HASH_KEY_STRING)); + + return any_impl->ns; } axis2_status_t AXIS2_CALL @@ -256,9 +341,12 @@ axis2_char_t *namespc) { axis2_xml_schema_any_impl_t *any_impl = NULL; + axis2_hash_t *super = NULL; AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - any_impl = AXIS2_INTF_TO_IMPL(any); + super = AXIS2_XML_SCHEMA_ANY_SUPER_OBJS(any, env); + any_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ANY", AXIS2_HASH_KEY_STRING)); if(!any_impl->ns) { @@ -273,7 +361,13 @@ axis2_xml_schema_any_get_process_content(void *any, axis2_env_t **env) { - return AXIS2_INTF_TO_IMPL(any)->process_content; + axis2_xml_schema_any_impl_t *any_impl = NULL; + axis2_hash_t *super = NULL; + super = AXIS2_XML_SCHEMA_ANY_SUPER_OBJS(any, env); + any_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ANY", AXIS2_HASH_KEY_STRING)); + + return any_impl->process_content; } axis2_status_t AXIS2_CALL @@ -283,9 +377,12 @@ process_content) { axis2_xml_schema_any_impl_t *any_impl = NULL; + axis2_hash_t *super = NULL; AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - any_impl = AXIS2_INTF_TO_IMPL(any); + super = AXIS2_XML_SCHEMA_ANY_SUPER_OBJS(any, env); + any_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ANY", AXIS2_HASH_KEY_STRING)); if(!any_impl->process_content) { Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c Tue May 9 23:39:32 2006 @@ -27,7 +27,8 @@ axis2_xml_schema_app_info_t app_info; axis2_xml_schema_obj_t *schema_obj; - + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_hash_t *methods; /** * Provides the source of the application information. @@ -41,8 +42,19 @@ ((axis2_xml_schema_app_info_impl_t *) app_info) axis2_status_t AXIS2_CALL -axis2_xml_schema_app_info_free(void *app_info, - axis2_env_t **env); +axis2_xml_schema_app_info_free( + void *app_info, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_app_info_super_objs( + void *app_info, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_app_info_type( + void *app_info, + axis2_env_t **env); axis2_xml_schema_obj_t *AXIS2_CALL axis2_xml_schema_app_info_get_base_impl(void *app_info, @@ -85,6 +97,8 @@ app_info_impl->schema_obj = NULL; app_info_impl->app_info.base.ops = NULL; app_info_impl->app_info.ops = NULL; + app_info_impl->obj_type = AXIS2_XML_SCHEMA_APP_INFO; + app_info_impl->super = NULL; app_info_impl->methods = NULL; app_info_impl->source = NULL; app_info_impl->markup = NULL; @@ -100,6 +114,10 @@ } app_info_impl->app_info.ops->free = axis2_xml_schema_app_info_free; + app_info_impl->app_info.ops->super_objs = + axis2_xml_schema_app_info_super_objs; + app_info_impl->app_info.ops->type = + axis2_xml_schema_app_info_type; app_info_impl->app_info.ops->get_base_impl = axis2_xml_schema_app_info_get_base_impl; app_info_impl->app_info.ops->get_source = @@ -120,6 +138,10 @@ } axis2_hash_set(app_info_impl->methods, "free", AXIS2_HASH_KEY_STRING, axis2_xml_schema_app_info_free); + axis2_hash_set(app_info_impl->methods, "super_objs", + AXIS2_HASH_KEY_STRING, axis2_xml_schema_app_info_super_objs); + axis2_hash_set(app_info_impl->methods, "type", + AXIS2_HASH_KEY_STRING, axis2_xml_schema_app_info_type); axis2_hash_set(app_info_impl->methods, "get_source", AXIS2_HASH_KEY_STRING, axis2_xml_schema_app_info_get_source); axis2_hash_set(app_info_impl->methods, "set_source", @@ -135,6 +157,19 @@ axis2_xml_schema_app_info_free(&(app_info_impl->app_info), env); return NULL; } + + app_info_impl->super = axis2_hash_make(env); + if(!app_info_impl->super) + { + axis2_xml_schema_app_info_free(&(app_info_impl->app_info), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(app_info_impl->super, "AXIS2_XML_SCHEMA_APP_INFO", + AXIS2_HASH_KEY_STRING, &(app_info_impl->app_info)); + axis2_hash_set(app_info_impl->super, "AXIS2_XML_SCHEMA_OBJ", + AXIS2_HASH_KEY_STRING, app_info_impl->schema_obj); + status = axis2_xml_schema_obj_resolve_methods(&(app_info_impl->app_info.base), env, app_info_impl->schema_obj, app_info_impl->methods); @@ -158,6 +193,12 @@ /* TODO Free markup */ + if(NULL != app_info_impl->super) + { + axis2_hash_free(app_info_impl->super, env); + app_info_impl->super = NULL; + } + if(NULL != app_info_impl->methods) { axis2_hash_free(app_info_impl->methods, env); @@ -188,9 +229,36 @@ return AXIS2_SUCCESS; } +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_app_info_super_objs( + void *app_info, + axis2_env_t **env) +{ + axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + app_info_impl = AXIS2_INTF_TO_IMPL(app_info); + + return app_info_impl->super; +} + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_app_info_type( + void *app_info, + axis2_env_t **env) +{ + axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + app_info_impl = AXIS2_INTF_TO_IMPL(app_info); + + return app_info_impl->obj_type; +} + axis2_xml_schema_obj_t *AXIS2_CALL -axis2_xml_schema_app_info_get_base_impl(void *app_info, - axis2_env_t **env) +axis2_xml_schema_app_info_get_base_impl( + void *app_info, + axis2_env_t **env) { axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; @@ -202,10 +270,10 @@ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_app_info_resolve_methods( - axis2_xml_schema_app_info_t *app_info, - axis2_env_t **env, - axis2_xml_schema_app_info_t *app_info_impl, - axis2_hash_t *methods) + axis2_xml_schema_app_info_t *app_info, + axis2_env_t **env, + axis2_xml_schema_app_info_t *app_info_impl, + axis2_hash_t *methods) { axis2_xml_schema_app_info_impl_t *app_info_impl_l = NULL; @@ -225,15 +293,34 @@ } app_info->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - app_info->ops->get_base_impl = - app_info_impl_l->app_info.ops->get_base_impl; - app_info->ops->get_source = + app_info->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + app_info->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); + + app_info->ops->get_source = axis2_hash_get(methods, + "get_source", AXIS2_HASH_KEY_STRING); + + if(!app_info->ops->get_source) + app_info->ops->get_source = app_info_impl_l->app_info.ops->get_source; - app_info->ops->set_source = + + app_info->ops->set_source = axis2_hash_get(methods, + "set_source", AXIS2_HASH_KEY_STRING); + if(!app_info->ops->set_source) + app_info->ops->set_source = app_info_impl_l->app_info.ops->set_source; - app_info->ops->get_markup = + + app_info->ops->get_markup = axis2_hash_get(methods, + "get_markup", AXIS2_HASH_KEY_STRING); + if(!app_info->ops->get_markup) + app_info->ops->get_markup = app_info_impl_l->app_info.ops->get_markup; - app_info->ops->set_markup = + + app_info->ops->set_markup = axis2_hash_get(methods, + "set_markup", AXIS2_HASH_KEY_STRING); + if(!app_info->ops->set_markup) + app_info->ops->set_markup = app_info_impl_l->app_info.ops->set_markup; return axis2_xml_schema_obj_resolve_methods(&(app_info->base), @@ -244,8 +331,15 @@ axis2_xml_schema_app_info_get_source(void *app_info, axis2_env_t **env) { + axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, NULL); - return AXIS2_INTF_TO_IMPL(app_info)->source; + super = AXIS2_XML_SCHEMA_USE_SUPER_OBJS(app_info, env); + app_info_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_USE", + AXIS2_HASH_KEY_STRING)); + + return app_info_impl->source; } axis2_status_t AXIS2_CALL @@ -254,9 +348,14 @@ axis2_char_t *source) { axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); AXIS2_PARAM_CHECK((*env)->error, source, AXIS2_FAILURE); - app_info_impl = AXIS2_INTF_TO_IMPL(app_info); + super = AXIS2_XML_SCHEMA_USE_SUPER_OBJS(app_info, env); + app_info_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_USE", + AXIS2_HASH_KEY_STRING)); + if(NULL != app_info_impl->source) { @@ -277,8 +376,15 @@ axis2_xml_schema_app_info_get_markup(void *app_info, axis2_env_t **env) { + axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, NULL); - return AXIS2_INTF_TO_IMPL(app_info)->markup; + super = AXIS2_XML_SCHEMA_USE_SUPER_OBJS(app_info, env); + app_info_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_USE", + AXIS2_HASH_KEY_STRING)); + + return app_info_impl->markup; } /* TODO replace (void *) mark up with node list */ @@ -288,9 +394,14 @@ void *markup) { axis2_xml_schema_app_info_impl_t *app_info_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); AXIS2_PARAM_CHECK((*env)->error, markup, AXIS2_FAILURE); - app_info_impl = AXIS2_INTF_TO_IMPL(app_info); + super = AXIS2_XML_SCHEMA_USE_SUPER_OBJS(app_info, env); + app_info_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_USE", + AXIS2_HASH_KEY_STRING)); + app_info_impl->markup = markup; return AXIS2_SUCCESS; Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c Tue May 9 23:39:32 2006 @@ -28,7 +28,8 @@ axis2_xml_schema_content_processing_t content_processing; axis2_xml_schema_enum_t *schema_enum; - + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_hash_t *methods; axis2_array_list_t *members; @@ -38,8 +39,19 @@ ((axis2_xml_schema_content_processing_impl_t *) content_processing) axis2_status_t AXIS2_CALL -axis2_xml_schema_content_processing_free(void *content_processing, - axis2_env_t **env); +axis2_xml_schema_content_processing_free( + void *content_processing, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_content_processing_super_objs( + void *content_processing, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_content_processing_type( + void *content_processing, + axis2_env_t **env); axis2_xml_schema_enum_t *AXIS2_CALL axis2_xml_schema_content_processing_get_base_impl(void *content_processing, @@ -67,6 +79,8 @@ content_processing_impl->schema_enum = NULL; content_processing_impl->content_processing.base.ops = NULL; + content_processing_impl->obj_type = AXIS2_XML_SCHEMA_CONTENT_PROCESSING; + content_processing_impl->super = NULL; content_processing_impl->methods = NULL; content_processing_impl->members = NULL; content_processing_impl->content_processing.ops = NULL; @@ -84,6 +98,10 @@ content_processing_impl->content_processing.ops->free = axis2_xml_schema_content_processing_free; + content_processing_impl->content_processing.ops->super_objs = + axis2_xml_schema_content_processing_super_objs; + content_processing_impl->content_processing.ops->type = + axis2_xml_schema_content_processing_type; content_processing_impl->content_processing.ops->get_base_impl = axis2_xml_schema_content_processing_get_base_impl; @@ -113,12 +131,31 @@ axis2_hash_set(content_processing_impl->methods, "free", AXIS2_HASH_KEY_STRING, axis2_xml_schema_content_processing_free); + axis2_hash_set(content_processing_impl->methods, "super_objs", + AXIS2_HASH_KEY_STRING, axis2_xml_schema_content_processing_super_objs); + axis2_hash_set(content_processing_impl->methods, "type", + AXIS2_HASH_KEY_STRING, axis2_xml_schema_content_processing_type); axis2_hash_set(content_processing_impl->methods, "get_values", AXIS2_HASH_KEY_STRING, axis2_xml_schema_content_processing_get_values); content_processing_impl->schema_enum = axis2_xml_schema_enum_create(env, NULL); + content_processing_impl->super = axis2_hash_make(env); + if(!content_processing_impl->super) + { + axis2_xml_schema_content_processing_free( + &(content_processing_impl->content_processing), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + + axis2_hash_set(content_processing_impl->super, "AXIS2_XML_SCHEMA_CONTENT_PROCESSING", + AXIS2_HASH_KEY_STRING, &(content_processing_impl->content_processing)); + + axis2_hash_set(content_processing_impl->super, "AXIS2_XML_SCHEMA_ENUM", + AXIS2_HASH_KEY_STRING, content_processing_impl->schema_enum); + status = axis2_xml_schema_enum_resolve_methods( &(content_processing_impl->content_processing.base), env, content_processing_impl->schema_enum, @@ -156,11 +193,18 @@ content_processing_impl->members = NULL; } + if(NULL != content_processing_impl->super) + { + axis2_hash_free(content_processing_impl->super, env); + content_processing_impl->super = NULL; + } + if(NULL != content_processing_impl->methods) { axis2_hash_free(content_processing_impl->methods, env); content_processing_impl->methods = NULL; } + if(NULL != content_processing_impl->schema_enum) { AXIS2_XML_SCHEMA_ENUM_FREE(content_processing_impl->schema_enum, env); @@ -185,9 +229,36 @@ return AXIS2_SUCCESS; } +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_content_processing_super_objs( + void *content_processing, + axis2_env_t **env) +{ + axis2_xml_schema_content_processing_impl_t *content_processing_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + content_processing_impl = AXIS2_INTF_TO_IMPL(content_processing); + + return content_processing_impl->super; +} + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_content_processing_type( + void *content_processing, + axis2_env_t **env) +{ + axis2_xml_schema_content_processing_impl_t *content_processing_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + content_processing_impl = AXIS2_INTF_TO_IMPL(content_processing); + + return content_processing_impl->obj_type; +} + axis2_xml_schema_enum_t *AXIS2_CALL -axis2_xml_schema_content_processing_get_base_impl(void *content_processing, - axis2_env_t **env) +axis2_xml_schema_content_processing_get_base_impl( + void *content_processing, + axis2_env_t **env) { axis2_xml_schema_content_processing_impl_t *content_processing_impl = NULL; @@ -199,10 +270,10 @@ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_content_processing_resolve_methods( - axis2_xml_schema_content_processing_t *content_processing, - axis2_env_t **env, - axis2_xml_schema_content_processing_t *content_processing_impl, - axis2_hash_t *methods) + axis2_xml_schema_content_processing_t *content_processing, + axis2_env_t **env, + axis2_xml_schema_content_processing_t *content_processing_impl, + axis2_hash_t *methods) { axis2_xml_schema_content_processing_impl_t *content_processing_impl_l = NULL; @@ -217,9 +288,12 @@ sizeof(axis2_xml_schema_content_processing_ops_t)); content_processing->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - content_processing->ops->get_base_impl = - content_processing_impl_l->content_processing.ops->get_base_impl; - content_processing->ops->get_values = + + + content_processing->ops->get_values = axis2_hash_get(methods, "get_values", + AXIS2_HASH_KEY_STRING); + if(!content_processing->ops->get_values) + content_processing->ops->get_values = content_processing_impl_l->content_processing.ops->get_values; return axis2_xml_schema_enum_resolve_methods( @@ -231,6 +305,13 @@ axis2_xml_schema_content_processing_get_values(void *content_processing, axis2_env_t **env) { - return AXIS2_INTF_TO_IMPL(content_processing)->members; + axis2_xml_schema_content_processing_impl_t *content_processing_impl = NULL; + axis2_hash_t *super = NULL; + + super = AXIS2_XML_SCHEMA_USE_SUPER_OBJS(content_processing, env); + content_processing_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_CONTENT_PROCESSING", AXIS2_HASH_KEY_STRING)); + + return content_processing_impl->members; } Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_enum.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_enum.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_enum.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_enum.c Tue May 9 23:39:32 2006 @@ -27,6 +27,8 @@ struct axis2_xml_schema_enum_impl { axis2_xml_schema_enum_t schema_enum; + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_array_list_t *values; @@ -37,8 +39,19 @@ ((axis2_xml_schema_enum_impl_t *) schema_enum) axis2_status_t AXIS2_CALL -axis2_xml_schema_enum_free(void *schema_enum, - axis2_env_t **envv); +axis2_xml_schema_enum_free( + void *schema_enum, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_enum_super_objs( + void *schema_enum, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_enum_type( + void *schema_enum, + axis2_env_t **env); axis2_char_t * AXIS2_CALL axis2_xml_schema_enum_get_value(void *schema_enum, @@ -72,6 +85,8 @@ return NULL; } + schema_enum_impl->obj_type = AXIS2_XML_SCHEMA_ENUM; + schema_enum_impl->super = NULL; schema_enum_impl->values = NULL; schema_enum_impl->value = NULL; schema_enum_impl->schema_enum.ops = NULL; @@ -91,6 +106,12 @@ schema_enum_impl->schema_enum.ops->free = axis2_xml_schema_enum_free; + + schema_enum_impl->schema_enum.ops->super_objs = + axis2_xml_schema_enum_super_objs; + + schema_enum_impl->schema_enum.ops->type = + axis2_xml_schema_enum_type; schema_enum_impl->schema_enum.ops->get_value = axis2_xml_schema_enum_get_value; @@ -104,6 +125,16 @@ schema_enum_impl->schema_enum.ops->get_values = axis2_xml_schema_enum_get_values; + schema_enum_impl->super = axis2_hash_make(env); + if(!schema_enum_impl->super) + { + axis2_xml_schema_enum_free(&(schema_enum_impl->schema_enum), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(schema_enum_impl->super, "AXIS2_XML_SCHEMA_ENUM", + AXIS2_HASH_KEY_STRING, &(schema_enum_impl->schema_enum)); + return &(schema_enum_impl->schema_enum); } @@ -127,6 +158,12 @@ schema_enum_impl->values = NULL; } + if(NULL != schema_enum_impl->super) + { + axis2_hash_free(schema_enum_impl->super, env); + schema_enum_impl->super = NULL; + } + if(NULL != (&(schema_enum_impl->schema_enum))->ops) { AXIS2_FREE((*env)->allocator, ((&(schema_enum_impl->schema_enum))->ops)); @@ -141,11 +178,38 @@ return AXIS2_SUCCESS; } +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_enum_super_objs( + void *schema_enum, + axis2_env_t **env) +{ + axis2_xml_schema_enum_impl_t *schema_enum_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + schema_enum_impl = AXIS2_INTF_TO_IMPL(schema_enum); + + return schema_enum_impl->super; +} + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_enum_type( + void *schema_enum, + axis2_env_t **env) +{ + axis2_xml_schema_enum_impl_t *schema_enum_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + schema_enum_impl = AXIS2_INTF_TO_IMPL(schema_enum); + + return schema_enum_impl->obj_type; +} + AXIS2_DECLARE(axis2_status_t) -axis2_xml_schema_enum_resolve_methods(axis2_xml_schema_enum_t *schema_enum, - axis2_env_t **env, - axis2_xml_schema_enum_t *schema_enum_impl, - axis2_hash_t *methods) +axis2_xml_schema_enum_resolve_methods( + axis2_xml_schema_enum_t *schema_enum, + axis2_env_t **env, + axis2_xml_schema_enum_t *schema_enum_impl, + axis2_hash_t *methods) { axis2_xml_schema_enum_impl_t *schema_enum_impl_l = NULL; @@ -165,14 +229,35 @@ } schema_enum->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - schema_enum->ops->get_value = + schema_enum->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + schema_enum->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); + + schema_enum->ops->get_value = axis2_hash_get(methods, + "get_value", AXIS2_HASH_KEY_STRING); + if(!schema_enum->ops->get_value) + schema_enum->ops->get_value = schema_enum_impl_l->schema_enum.ops->get_value; + + schema_enum->ops->set_value = axis2_hash_get(methods, + "set_value", AXIS2_HASH_KEY_STRING); + if(!schema_enum->ops->set_value) schema_enum->ops->set_value = schema_enum_impl_l->schema_enum.ops->set_value; + + schema_enum->ops->equals = axis2_hash_get(methods, + "equals", AXIS2_HASH_KEY_STRING); + if(!schema_enum->ops->equals) schema_enum->ops->equals = schema_enum_impl_l->schema_enum.ops->equals; + + schema_enum->ops->get_values = axis2_hash_get(methods, + "get_values", AXIS2_HASH_KEY_STRING); + if(!schema_enum->ops->get_values) schema_enum->ops->get_values = schema_enum_impl_l->schema_enum.ops->get_values; + return AXIS2_SUCCESS; } @@ -183,8 +268,12 @@ axis2_env_t **env) { axis2_xml_schema_enum_impl_t *schema_enum_impl = NULL; + axis2_hash_t *super = NULL; - schema_enum_impl = AXIS2_INTF_TO_IMPL(schema_enum); + super = AXIS2_XML_SCHEMA_ENUM_SUPER_OBJS(schema_enum, env); + schema_enum_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING)); + return schema_enum_impl->value; } @@ -194,8 +283,11 @@ axis2_char_t *value) { axis2_xml_schema_enum_impl_t *schema_enum_impl = NULL; - - schema_enum_impl = AXIS2_INTF_TO_IMPL(schema_enum); + axis2_hash_t *super = NULL; + + super = AXIS2_XML_SCHEMA_ENUM_SUPER_OBJS(schema_enum, env); + schema_enum_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING)); if(NULL != schema_enum_impl->value) { @@ -217,8 +309,12 @@ void *obj) { axis2_xml_schema_enum_impl_t *schema_enum_impl = NULL; + axis2_hash_t *super = NULL; + + super = AXIS2_XML_SCHEMA_ENUM_SUPER_OBJS(schema_enum, env); + schema_enum_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING)); - schema_enum_impl = AXIS2_INTF_TO_IMPL(schema_enum); /** TODO */ return AXIS2_TRUE; @@ -229,7 +325,12 @@ axis2_env_t **env) { axis2_xml_schema_enum_impl_t *schema_enum_impl = NULL; - schema_enum_impl = AXIS2_INTF_TO_IMPL(schema_enum); + axis2_hash_t *super = NULL; + + super = AXIS2_XML_SCHEMA_ENUM_SUPER_OBJS(schema_enum, env); + schema_enum_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING)); + return schema_enum_impl->values; } Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c Tue May 9 23:39:32 2006 @@ -27,6 +27,8 @@ { axis2_xml_schema_group_t group; axis2_xml_schema_annotated_t *annotated; + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_hash_t *methods; axis2_char_t *name; axis2_xml_schema_group_base_t *particle; @@ -35,8 +37,19 @@ #define AXIS2_INTF_TO_IMPL(group) ((axis2_xml_schema_group_impl_t *) group) axis2_status_t AXIS2_CALL -axis2_xml_schema_group_free(void *group, - axis2_env_t **env); +axis2_xml_schema_group_free( + void *group, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_group_super_objs( + void *group, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_group_type( + void *group, + axis2_env_t **env); axis2_xml_schema_annotated_t *AXIS2_CALL axis2_xml_schema_group_get_base_impl(void *group, @@ -75,6 +88,8 @@ } group_impl->annotated = NULL; + group_impl->obj_type = AXIS2_XML_SCHEMA_GROUP; + group_impl->super = NULL; group_impl->methods = NULL; group_impl->name = NULL; group_impl->particle = NULL; @@ -93,6 +108,10 @@ group_impl->group.ops->free = axis2_xml_schema_group_free; + group_impl->group.ops->super_objs = + axis2_xml_schema_group_super_objs; + group_impl->group.ops->type = + axis2_xml_schema_group_type; group_impl->group.ops->get_base_impl = axis2_xml_schema_group_get_base_impl; group_impl->group.ops->get_name = @@ -113,6 +132,10 @@ } axis2_hash_set(group_impl->methods, "free", AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_free); + axis2_hash_set(group_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_group_super_objs); + axis2_hash_set(group_impl->methods, "type", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_group_type); axis2_hash_set(group_impl->methods, "get_name", AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_get_name); axis2_hash_set(group_impl->methods, "set_name", @@ -128,6 +151,18 @@ axis2_xml_schema_group_free(&(group_impl->group), env); return NULL; } + group_impl->super = axis2_hash_make(env); + if(!group_impl->super) + { + axis2_xml_schema_group_free(&(group_impl->group), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(group_impl->super, "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING, + &(group_impl->group)); + axis2_hash_set(group_impl->super, "AXIS2_XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING, + group_impl->annotated); + status = axis2_xml_schema_annotated_resolve_methods( &(group_impl->group.base), env, group_impl->annotated, group_impl->methods); @@ -156,6 +191,12 @@ group_impl->particle = NULL; } + if(NULL != group_impl->super) + { + axis2_hash_free(group_impl->super, env); + group_impl->super = NULL; + } + if(NULL != group_impl->methods) { axis2_hash_free(group_impl->methods, env); @@ -183,6 +224,28 @@ return AXIS2_SUCCESS; } +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_group_super_objs(void *group, + axis2_env_t **env) +{ + axis2_xml_schema_group_impl_t *group_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + group_impl = AXIS2_INTF_TO_IMPL(group); + return group_impl->super; +} + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_group_type(void *group, + axis2_env_t **env) +{ + axis2_xml_schema_group_impl_t *group_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + group_impl = AXIS2_INTF_TO_IMPL(group); + return group_impl->obj_type; +} + axis2_xml_schema_annotated_t *AXIS2_CALL axis2_xml_schema_group_get_base_impl(void *group, axis2_env_t **env) @@ -219,14 +282,32 @@ } group->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - group->ops->get_base_impl = - group_impl_l->group.ops->get_base_impl; - group->ops->get_name = + group->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + group->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); + + group->ops->get_name = axis2_hash_get(methods, "name", + AXIS2_HASH_KEY_STRING); + if(!group->ops->get_name) + group->ops->get_name = group_impl_l->group.ops->get_name; - group->ops->set_name = + + group->ops->set_name = axis2_hash_get(methods, "set_name", + AXIS2_HASH_KEY_STRING); + if(!group->ops->set_name) + group->ops->set_name = group_impl_l->group.ops->set_name; + + group->ops->get_particle = axis2_hash_get(methods, "get_particle", + AXIS2_HASH_KEY_STRING); + if(!group->ops->get_particle) group->ops->get_particle = group_impl_l->group.ops->get_particle; + + group->ops->set_particle = axis2_hash_get(methods, "set_particle", + AXIS2_HASH_KEY_STRING); + if(!group->ops->set_particle) group->ops->set_particle = group_impl_l->group.ops->set_particle; @@ -248,9 +329,12 @@ axis2_char_t *name) { axis2_xml_schema_group_impl_t *group_impl = NULL; + axis2_hash_t *super = NULL; AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - group_impl = AXIS2_INTF_TO_IMPL(group); + super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); + group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING)); if(NULL != group_impl->name) { @@ -270,8 +354,15 @@ axis2_xml_schema_group_get_particle(void *group, axis2_env_t **env) { + axis2_xml_schema_group_impl_t *group_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, NULL); - return AXIS2_INTF_TO_IMPL(group)->particle; + super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); + group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING)); + + return group_impl->particle; } axis2_status_t AXIS2_CALL @@ -280,10 +371,15 @@ axis2_xml_schema_group_base_t *particle) { axis2_xml_schema_group_impl_t *group_impl = NULL; + axis2_hash_t *super = NULL; AXIS2_ENV_CHECK(env, AXIS2_FAILURE); group_impl = AXIS2_INTF_TO_IMPL(group); AXIS2_PARAM_CHECK((*env)->error , particle, AXIS2_FAILURE); + super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); + group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING)); + if(NULL != group_impl->particle) { /** TODO Free particle */ Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c Tue May 9 23:39:32 2006 @@ -29,6 +29,8 @@ axis2_xml_schema_particle_t *particle; + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_hash_t *methods; axis2_xml_schema_obj_collection_t *items; @@ -39,8 +41,19 @@ /****************** *****************************************************/ axis2_status_t AXIS2_CALL -axis2_xml_schema_group_base_free(void *group_base, - axis2_env_t **env); +axis2_xml_schema_group_base_free( + void *group_base, + axis2_env_t **env); + +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_group_base_super_objs( + void *group_base, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_group_base_type( + void *group_base, + axis2_env_t **env); axis2_xml_schema_particle_t *AXIS2_CALL axis2_xml_schema_group_base_get_base_impl(void *group_base, @@ -67,6 +80,8 @@ } group_base_impl->particle = NULL; + group_base_impl->obj_type = AXIS2_XML_SCHEMA_GROUP_BASE; + group_base_impl->super = NULL; group_base_impl->methods = NULL; group_base_impl->items = NULL; group_base_impl->group_base.ops = NULL; @@ -83,6 +98,10 @@ group_base_impl->group_base.ops->free = axis2_xml_schema_group_base_free; + group_base_impl->group_base.ops->super_objs = + axis2_xml_schema_group_base_super_objs; + group_base_impl->group_base.ops->type = + axis2_xml_schema_group_base_type; group_base_impl->group_base.ops->get_base_impl = axis2_xml_schema_group_base_get_base_impl; group_base_impl->group_base.ops->get_items = @@ -97,6 +116,10 @@ } axis2_hash_set(group_base_impl->methods, "free", AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_base_free); + axis2_hash_set(group_base_impl->methods, "type", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_group_base_type); + axis2_hash_set(group_base_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_group_base_super_objs); axis2_hash_set(group_base_impl->methods, "get_items", AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_base_get_items); @@ -107,6 +130,19 @@ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } + + group_base_impl->super = axis2_hash_make(env); + if(!group_base_impl->super) + { + axis2_xml_schema_group_base_free(&(group_base_impl->group_base), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(group_base_impl->super, "AXIS2_XML_SCHEMA_GROUP_BASE", + AXIS2_HASH_KEY_STRING, &(group_base_impl->group_base) ); + axis2_hash_set(group_base_impl->super, "AXIS2_XML_SCHEMA_PARTICLE", + AXIS2_HASH_KEY_STRING, group_base_impl->particle ); + status = axis2_xml_schema_particle_resolve_methods( &(group_base_impl->group_base.base), env, group_base_impl->particle, group_base_impl->methods); @@ -128,6 +164,12 @@ group_base_impl->items = NULL; } + if(NULL != group_base_impl->super) + { + axis2_hash_free(group_base_impl->super, env); + group_base_impl->super = NULL; + } + if(NULL != group_base_impl->methods) { axis2_hash_free(group_base_impl->methods, env); @@ -158,9 +200,36 @@ return AXIS2_SUCCESS; } +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_group_base_super_objs( + void *group_base, + axis2_env_t **env) +{ + axis2_xml_schema_group_base_impl_t *group_base_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + group_base_impl = AXIS2_INTF_TO_IMPL(group_base); + + return group_base_impl->super; +} + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_group_base_type( + void *group_base, + axis2_env_t **env) +{ + axis2_xml_schema_group_base_impl_t *group_base_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + group_base_impl = AXIS2_INTF_TO_IMPL(group_base); + + return group_base_impl->obj_type; +} + axis2_xml_schema_particle_t *AXIS2_CALL -axis2_xml_schema_group_base_get_base_impl(void *group_base, - axis2_env_t **env) +axis2_xml_schema_group_base_get_base_impl( + void *group_base, + axis2_env_t **env) { axis2_xml_schema_group_base_impl_t *group_base_impl = NULL; @@ -172,10 +241,10 @@ AXIS2_DECLARE(axis2_status_t) axis2_xml_schema_group_base_resolve_methods( - axis2_xml_schema_group_base_t *group_base, - axis2_env_t **env, - axis2_xml_schema_group_base_t *group_base_impl, - axis2_hash_t *methods) + axis2_xml_schema_group_base_t *group_base, + axis2_env_t **env, + axis2_xml_schema_group_base_t *group_base_impl, + axis2_hash_t *methods) { axis2_xml_schema_group_base_impl_t *group_base_impl_l = NULL; @@ -195,10 +264,16 @@ group_base->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - group_base->ops->get_base_impl = - group_base_impl_l->group_base.ops->get_base_impl; + group_base->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + group_base->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); + group_base->ops->get_items = axis2_hash_get(methods, "get_items", AXIS2_HASH_KEY_STRING); + if(!group_base->ops->get_items) + group_base->ops->get_items = + group_base_impl_l->group_base.ops->get_items; return axis2_xml_schema_particle_resolve_methods(&(group_base->base), env, group_base_impl_l->particle, methods); @@ -208,7 +283,14 @@ axis2_xml_schema_group_base_get_items(void *group_base, axis2_env_t **env) { + axis2_xml_schema_group_base_impl_t *group_base_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, NULL); + super = AXIS2_XML_SCHEMA_GROUP_BASE_SUPER_OBJS(group_base, env); + group_base_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP_BASE", AXIS2_HASH_KEY_STRING)); + return AXIS2_INTF_TO_IMPL(group_base)->items; } Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c?rev=405653&r1=405652&r2=405653&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c (original) +++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c Tue May 9 23:39:32 2006 @@ -30,6 +30,8 @@ axis2_xml_schema_particle_t *base; + axis2_xml_schema_types_t obj_type; + axis2_hash_t *super; axis2_hash_t *methods; axis2_qname_t *ref_qname; @@ -44,6 +46,16 @@ axis2_xml_schema_group_ref_free(void *group_ref, axis2_env_t **env); +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_group_ref_super_objs( + void *group_ref, + axis2_env_t **env); + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_group_ref_type( + void *group_ref, + axis2_env_t **env); + axis2_xml_schema_particle_t *AXIS2_CALL axis2_xml_schema_group_ref_get_base_impl(void *group_ref, axis2_env_t **env); @@ -82,6 +94,8 @@ group_ref_impl->group_ref.base.ops = NULL; group_ref_impl->base = NULL; + group_ref_impl->obj_type = AXIS2_XML_SCHEMA_GROUP_REF; + group_ref_impl->super = NULL; group_ref_impl->methods = NULL; group_ref_impl->ref_qname = NULL; group_ref_impl->particle = NULL; @@ -99,6 +113,10 @@ group_ref_impl->group_ref.ops->free = axis2_xml_schema_group_ref_free; + group_ref_impl->group_ref.ops->super_objs = + axis2_xml_schema_group_ref_super_objs; + group_ref_impl->group_ref.ops->type = + axis2_xml_schema_group_ref_type; group_ref_impl->group_ref.ops->get_base_impl = axis2_xml_schema_group_ref_get_base_impl; group_ref_impl->group_ref.ops->get_ref_qname = @@ -117,6 +135,10 @@ } axis2_hash_set(group_ref_impl->methods, "free", AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_free); + axis2_hash_set(group_ref_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_group_ref_super_objs); + axis2_hash_set(group_ref_impl->methods, "type", AXIS2_HASH_KEY_STRING, + axis2_xml_schema_group_ref_type); axis2_hash_set(group_ref_impl->methods, "get_ref_qname", AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_ref_qname); axis2_hash_set(group_ref_impl->methods, "set_ref_qname", @@ -130,6 +152,18 @@ axis2_xml_schema_group_ref_free(&(group_ref_impl->group_ref), env); return NULL; } + group_ref_impl->super = axis2_hash_make(env); + if(!group_ref_impl->super) + { + axis2_xml_schema_group_ref_free(&(group_ref_impl->group_ref), env); + AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); + return NULL; + } + axis2_hash_set(group_ref_impl->super, "AXIS2_XML_SCHEMA_GROUP_REF", + AXIS2_HASH_KEY_STRING, &(group_ref_impl->group_ref) ); + axis2_hash_set(group_ref_impl->super, "AXIS2_XML_SCHEMA_PARTICLE", + AXIS2_HASH_KEY_STRING, group_ref_impl->particle ); + status = axis2_xml_schema_particle_resolve_methods( &(group_ref_impl->group_ref.base), env, group_ref_impl->base, group_ref_impl->methods); @@ -157,6 +191,12 @@ AXIS2_XML_SCHEMA_GROUP_BASE_FREE(group_ref_impl->particle, env); group_ref_impl->particle = NULL; } + + if(NULL != group_ref_impl->super) + { + axis2_hash_free(group_ref_impl->super, env); + group_ref_impl->super = NULL; + } if(NULL != group_ref_impl->methods) { @@ -185,6 +225,32 @@ return AXIS2_SUCCESS; } +axis2_hash_t *AXIS2_CALL +axis2_xml_schema_group_ref_super_objs( + void *group_ref, + axis2_env_t **env) +{ + axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL; + + AXIS2_ENV_CHECK(env, NULL); + group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref); + + return group_ref_impl->super; +} + +axis2_xml_schema_types_t AXIS2_CALL +axis2_xml_schema_group_ref_type( + void *group_ref, + axis2_env_t **env) +{ + axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref); + + return group_ref_impl->obj_type; +} + axis2_xml_schema_particle_t *AXIS2_CALL axis2_xml_schema_group_ref_get_base_impl(void *group_ref, axis2_env_t **env) @@ -216,12 +282,26 @@ sizeof(axis2_xml_schema_group_ref_ops_t)); group_ref->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING); - group_ref->ops->get_base_impl = - group_ref_impl_l->group_ref.ops->get_base_impl; + group_ref->ops->super_objs = axis2_hash_get(methods, "super_objs", + AXIS2_HASH_KEY_STRING); + group_ref->ops->type = axis2_hash_get(methods, "type", + AXIS2_HASH_KEY_STRING); + + group_ref->ops->get_ref_qname = axis2_hash_get(methods, "get_ref_qname", + AXIS2_HASH_KEY_STRING); + if(!group_ref->ops->get_ref_qname) group_ref->ops->get_ref_qname = group_ref_impl_l->group_ref.ops->get_ref_qname; + + group_ref->ops->set_ref_qname = axis2_hash_get(methods, "set_ref_qname", + AXIS2_HASH_KEY_STRING); + if(!group_ref->ops->set_ref_qname) group_ref->ops->set_ref_qname = group_ref_impl_l->group_ref.ops->set_ref_qname; + + group_ref->ops->get_particle = axis2_hash_get(methods, "get_particle", + AXIS2_HASH_KEY_STRING); + if(!group_ref->ops->get_particle) group_ref->ops->get_particle = group_ref_impl_l->group_ref.ops->get_particle; @@ -233,8 +313,15 @@ axis2_xml_schema_group_ref_get_ref_qname(void *group_ref, axis2_env_t **env) { + axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, NULL); - return AXIS2_INTF_TO_IMPL(group_ref)->ref_qname; + super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env); + group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING)); + + return group_ref_impl->ref_qname; } axis2_status_t AXIS2_CALL @@ -243,9 +330,13 @@ axis2_qname_t *ref_qname) { axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL; + axis2_hash_t *super = NULL; AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref); + super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env); + group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING)); + if(group_ref_impl->ref_qname) { @@ -265,7 +356,14 @@ axis2_xml_schema_group_ref_get_particle(void *group_ref, axis2_env_t **env) { + axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL; + axis2_hash_t *super = NULL; + AXIS2_ENV_CHECK(env, NULL); - return AXIS2_INTF_TO_IMPL(group_ref)->particle; + super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env); + group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, + "AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING)); + + return group_ref_impl->particle; }