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 09:30:00 UTC
svn commit: r405662 - in /webservices/axis2/trunk/c/modules/xml/xml_schema:
include/xml_schema/axis2_xml_schema_defines.h
include/xml_schema/axis2_xml_schema_form.h xml_schema_form.c
Author: damitha
Date: Wed May 10 00:29:58 2006
New Revision: 405662
URL: http://svn.apache.org/viewcvs?rev=405662&view=rev
Log:
More fixes
Modified:
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_form.h
webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c
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=405662&r1=405661&r2=405662&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 Wed May 10 00:29:58 2006
@@ -58,7 +58,8 @@
AXIS2_XML_SCHEMA_APP_INFO,
AXIS2_XML_SCHEMA_GROUP,
AXIS2_XML_SCHEMA_GROUP_BASE,
- AXIS2_XML_SCHEMA_GROUP_REF
+ AXIS2_XML_SCHEMA_GROUP_REF,
+ AXIS2_XML_SCHEMA_FORM
} axis2_xml_schema_types_t;
/** @} */
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_form.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_form.h?rev=405662&r1=405661&r2=405662&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_form.h (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/include/xml_schema/axis2_xml_schema_form.h Wed May 10 00:29:58 2006
@@ -25,6 +25,7 @@
*
*/
+#include <xml_schema/axis2_xml_schema_defines.h>
#include <xml_schema/axis2_xml_schema_enum.h>
/** @defgroup axis2_xml_schema_form Xml Schema Form
@@ -54,6 +55,14 @@
free) (void *form,
axis2_env_t **env);
+ axis2_hash_t *(AXIS2_CALL *
+ super_objs) (void *form,
+ axis2_env_t **env);
+
+ axis2_xml_schema_types_t (AXIS2_CALL *
+ type) (void *form,
+ axis2_env_t **env);
+
axis2_xml_schema_enum_t *(AXIS2_CALL *
get_base_impl) (void *form,
axis2_env_t **env);
@@ -86,6 +95,12 @@
#define AXIS2_XML_SCHEMA_FORM_FREE(form, env) \
(((axis2_xml_schema_form_t *) form)->ops->free(form, env))
+
+#define AXIS2_XML_SCHEMA_FORM_SUPER_OBJS(form, env) \
+ (((axis2_xml_schema_form_t *) form)->ops->super_objs(form, env))
+
+#define AXIS2_XML_SCHEMA_FORM_TYPE(form, env) \
+ (((axis2_xml_schema_form_t *) form)->ops->type(form, env))
#define AXIS2_XML_SCHEMA_FORM_GET_BASE_IMPL(form, env) \
(((axis2_xml_schema_form_t *) form)->ops->get_base_impl(form, env))
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c?rev=405662&r1=405661&r2=405662&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c Wed May 10 00:29:58 2006
@@ -27,6 +27,8 @@
{
axis2_xml_schema_form_t form;
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;
};
@@ -34,8 +36,19 @@
#define AXIS2_INTF_TO_IMPL(form) ((axis2_xml_schema_form_impl_t *) form)
axis2_status_t AXIS2_CALL
-axis2_xml_schema_form_free(void *form,
- axis2_env_t **env);
+axis2_xml_schema_form_free(
+ void *form,
+ axis2_env_t **env);
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_form_super_objs(
+ void *form,
+ axis2_env_t **env);
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_form_type(
+ void *form,
+ axis2_env_t **env);
axis2_xml_schema_enum_t *AXIS2_CALL
axis2_xml_schema_form_get_base_impl(void *form,
@@ -69,6 +82,8 @@
}
form_impl->schema_enum = NULL;
+ form_impl->obj_type = AXIS2_XML_SCHEMA_FORM;
+ form_impl->super = NULL;
form_impl->methods = NULL;
form_impl->members = NULL;
form_impl->form.ops = AXIS2_MALLOC((*env)->allocator,
@@ -82,6 +97,8 @@
form_impl->form.ops->free = axis2_xml_schema_form_free;
+ form_impl->form.ops->super_objs = axis2_xml_schema_form_super_objs;
+ form_impl->form.ops->type = axis2_xml_schema_form_type;
form_impl->form.ops->get_base_impl = axis2_xml_schema_form_get_base_impl;
form_impl->form.ops->get_values =
axis2_xml_schema_form_get_values;
@@ -107,6 +124,10 @@
axis2_hash_set(form_impl->methods, "free", AXIS2_HASH_KEY_STRING,
axis2_xml_schema_form_free);
+ axis2_hash_set(form_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_form_super_objs);
+ axis2_hash_set(form_impl->methods, "type", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_form_type);
axis2_hash_set(form_impl->methods, "get_values", AXIS2_HASH_KEY_STRING,
axis2_xml_schema_form_get_values);
@@ -117,6 +138,19 @@
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
+
+ form_impl->super = axis2_hash_make(env);
+ if(!form_impl->super)
+ {
+ axis2_xml_schema_form_free(&(form_impl->form), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ axis2_hash_set(form_impl->super, "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING,
+ &(form_impl->form));
+ axis2_hash_set(form_impl->super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING,
+ form_impl->schema_enum);
status = axis2_xml_schema_enum_resolve_methods(
&(form_impl->form.base), env, form_impl->schema_enum,
@@ -152,7 +186,19 @@
AXIS2_ARRAY_LIST_FREE(form_impl->members, env);
form_impl->members = NULL;
}
-
+
+ if(form_impl->super)
+ {
+ axis2_hash_free(form_impl->super, env);
+ form_impl->super = NULL;
+ }
+
+ if(form_impl->methods)
+ {
+ axis2_hash_free(form_impl->methods, env);
+ form_impl->methods = NULL;
+ }
+
if(form_impl->schema_enum)
{
AXIS2_XML_SCHEMA_ENUM_FREE(form_impl->schema_enum, env);
@@ -173,6 +219,28 @@
return AXIS2_SUCCESS;
}
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_form_super_objs(void *form,
+ axis2_env_t **env)
+{
+ axis2_xml_schema_form_impl_t *form_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ form_impl = AXIS2_INTF_TO_IMPL(form);
+ return form_impl->super;
+}
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_form_type(void *form,
+ axis2_env_t **env)
+{
+ axis2_xml_schema_form_impl_t *form_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ form_impl = AXIS2_INTF_TO_IMPL(form);
+ return form_impl->obj_type;
+}
+
axis2_xml_schema_enum_t *AXIS2_CALL
axis2_xml_schema_form_get_base_impl(void *form,
axis2_env_t **env)
@@ -203,9 +271,15 @@
sizeof(axis2_xml_schema_form_ops_t));
form->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
- form->ops->get_base_impl =
- form_impl_l->form.ops->get_base_impl;
- form->ops->get_values =
+ form->ops->super_objs = axis2_hash_get(methods, "super_objs",
+ AXIS2_HASH_KEY_STRING);
+ form->ops->type = axis2_hash_get(methods, "type",
+ AXIS2_HASH_KEY_STRING);
+
+ form->ops->get_values = axis2_hash_get(methods, "get_values",
+ AXIS2_HASH_KEY_STRING);
+ if(!form->ops->get_values)
+ form->ops->get_values =
form_impl_l->form.ops->get_values;
return axis2_xml_schema_enum_resolve_methods(&(form->base),
@@ -216,6 +290,14 @@
axis2_xml_schema_form_get_values(void *form,
axis2_env_t **env)
{
- return AXIS2_INTF_TO_IMPL(form)->members;
+ axis2_xml_schema_form_impl_t *form_impl = NULL;
+ axis2_hash_t *super = NULL;
+
+ super = AXIS2_XML_SCHEMA_FORM_SUPER_OBJS(form, env);
+ form_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
+ "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING));
+
+
+ return form_impl->members;
}