You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/05/10 08:39:36 UTC
svn commit: r405653 [1/2] - in
/webservices/axis2/trunk/c/modules/xml/xml_schema: ./ include/xml_schema/
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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_obj.h>
#include <axis2_hash.h>
@@ -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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_particle.h>
#include <xml_schema/axis2_xml_schema_content_processing.h>
@@ -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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_obj.h>
#include <axis2_hash.h>
@@ -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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_enum.h>
/** @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 <axis2_const.h>
#include <axis2_array_list.h>
#include <axis2_hash.h>
+#include <xml_schema/axis2_xml_schema_defines.h>
#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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_annotated.h>
#include <axis2_hash.h>
@@ -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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_particle.h>
#include <xml_schema/axis2_xml_schema_obj_collection.h>
@@ -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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_particle.h>
#include <axis2_hash.h>
#include <axis2_qname.h>
@@ -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 <axis2_const.h>
#include <axis2_array_list.h>
#include <axis2_hash.h>
+#include <xml_schema/axis2_xml_schema_defines.h>
#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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_annotated.h>
#include <axis2_hash.h>
@@ -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 <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_enum.h>
/** @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;
}