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 na...@apache.org on 2006/05/15 11:31:15 UTC
svn commit: r406594 [8/8] - in
/webservices/axis2/trunk/c/modules/xml/xml_schema: ./ include/xml_schema/
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_type_union.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_type_union.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_type_union.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_type_union.c Mon May 15 02:31:10 2006
@@ -31,6 +31,10 @@
axis2_hash_t *methods;
+ axis2_hash_t *ht_super;
+
+ axis2_xml_schema_types_t obj_type;
+
axis2_char_t *member_types_source;
axis2_array_list_t *member_types_qnames;
@@ -47,9 +51,18 @@
axis2_xml_schema_simple_type_union_free(void *simple_type_union,
axis2_env_t **env);
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_simple_type_union_type(void *simple_type_union,
+ axis2_env_t **env);
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_simple_type_union_super_objs(void *simple_type_union,
+ axis2_env_t **env);
+
+
axis2_xml_schema_simple_type_content_t *AXIS2_CALL
axis2_xml_schema_simple_type_union_get_base_impl(void *simple_type_union,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_xml_schema_obj_collection_t* AXIS2_CALL
axis2_xml_schema_simple_type_union_get_base_types(void *simple_type_union,
@@ -75,6 +88,7 @@
axis2_xml_schema_simple_type_union_create(axis2_env_t **env)
{
axis2_xml_schema_simple_type_union_impl_t *simple_type_union_impl = NULL;
+ axis2_xml_schema_annotated_t *annotated = NULL;
axis2_status_t status = AXIS2_FAILURE;
simple_type_union_impl = AXIS2_MALLOC((*env)->allocator,
@@ -92,6 +106,9 @@
simple_type_union_impl->methods = NULL;
simple_type_union_impl->member_types_qnames = NULL;
simple_type_union_impl->member_types_source = NULL;
+ simple_type_union_impl->ht_super = NULL;
+ simple_type_union_impl->obj_type = AXIS2_XML_SCHEMA_SIMPLE_TYPE_UNION;
+
simple_type_union_impl->simple_type_union.ops =
AXIS2_MALLOC((*env)->allocator,
@@ -109,6 +126,10 @@
axis2_xml_schema_simple_type_union_free;
simple_type_union_impl->simple_type_union.ops->get_base_impl =
axis2_xml_schema_simple_type_union_get_base_impl;
+ simple_type_union_impl->simple_type_union.ops->type =
+ axis2_xml_schema_simple_type_union_type;
+ simple_type_union_impl->simple_type_union.ops->super_objs =
+ axis2_xml_schema_simple_type_union_super_objs;
simple_type_union_impl->simple_type_union.ops->get_base_types =
axis2_xml_schema_simple_type_union_get_base_types;
simple_type_union_impl->simple_type_union.ops->set_member_types_source =
@@ -119,9 +140,12 @@
axis2_xml_schema_simple_type_union_get_member_types_qnames;
simple_type_union_impl->methods = axis2_hash_make(env);
- if(!simple_type_union_impl->methods)
+ simple_type_union_impl->ht_super = axis2_hash_make(env);
+
+ if(!simple_type_union_impl->methods || !simple_type_union_impl->ht_super)
{
- axis2_xml_schema_simple_type_union_free(&(simple_type_union_impl->simple_type_union), env);
+ axis2_xml_schema_simple_type_union_free(
+ &(simple_type_union_impl->simple_type_union), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
@@ -129,7 +153,10 @@
axis2_xml_schema_simple_type_union_free);
axis2_hash_set(simple_type_union_impl->methods, "get_base_types",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_type_union_get_base_types);
- axis2_hash_set(simple_type_union_impl->methods, "set_member_types_source",
+ axis2_hash_set(simple_type_union_impl->methods, "type",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_type_union_type);
+ axis2_hash_set(simple_type_union_impl->methods, "super_objs",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_type_union_super_objs); axis2_hash_set(simple_type_union_impl->methods, "set_member_types_source",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_type_union_set_member_types_source);
axis2_hash_set(simple_type_union_impl->methods, "get_member_types_source",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_type_union_get_member_types_source);
@@ -155,9 +182,26 @@
&(simple_type_union_impl->simple_type_union), env);
return NULL;
}
- AXIS2_XML_SCHEMA_SIMPLE_TYPE_CONTENT_SET_TYPE(
- simple_type_union_impl->sim_type_content, env,
- AXIS2_XML_SCHEMA_SIMPLE_TYPE_UNION);
+
+
+ axis2_hash_set(simple_type_union_impl->ht_super, "AXIS2_XML_SCHEMA_SIMPLE_TYPE_UNION",
+ AXIS2_HASH_KEY_STRING, &(simple_type_union_impl->simple_type_union));
+
+ axis2_hash_set(simple_type_union_impl->ht_super, "AXIS2_XML_SCHEMA_SIMPLE_TYPE_CONTENT",
+ AXIS2_HASH_KEY_STRING, simple_type_union_impl->sim_type_content);
+
+ annotated = AXIS2_XML_SCHEMA_SIMPLE_TYPE_CONTENT_GET_BASE_IMPL(
+ simple_type_union_impl->sim_type_content, env);
+
+ if(NULL != annotated)
+ {
+ axis2_hash_set(simple_type_union_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, annotated);
+
+ axis2_hash_set(simple_type_union_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));
+ }
status = axis2_xml_schema_simple_type_content_resolve_methods(
&(simple_type_union_impl->simple_type_union.base), env, simple_type_union_impl->sim_type_content,
@@ -180,7 +224,11 @@
axis2_hash_free(simple_type_union_impl->methods, env);
simple_type_union_impl->methods = NULL;
}
-
+ if(NULL != simple_type_union_impl->ht_super)
+ {
+ axis2_hash_free(simple_type_union_impl->ht_super, env);
+ simple_type_union_impl->ht_super = NULL;
+ }
if(NULL != simple_type_union_impl->sim_type_content)
{
AXIS2_XML_SCHEMA_SIMPLE_TYPE_CONTENT_FREE(
@@ -221,6 +269,7 @@
return simple_type_union_impl->sim_type_content;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_simple_type_union_resolve_methods(
axis2_xml_schema_simple_type_union_t *simple_type_union,
@@ -265,6 +314,7 @@
&(simple_type_union->base), env,
simple_type_union_impl_l->sim_type_content, methods);
}
+*/
axis2_xml_schema_obj_collection_t* AXIS2_CALL
axis2_xml_schema_simple_type_union_get_base_types(void *simple_type_union,
@@ -313,3 +363,17 @@
AXIS2_ENV_CHECK(env, NULL);
return sim_type_res_impl->member_types_qnames;
}
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_simple_type_union_type(void *simple_type_union,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(simple_type_union)->obj_type;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_simple_type_union_super_objs(void *simple_type_union,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(simple_type_union)->ht_super;
+}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_type.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_type.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_type.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_type.c Mon May 15 02:31:10 2006
@@ -55,9 +55,14 @@
axis2_xml_schema_t *schema;
axis2_qname_t *qname;
+
+ axis2_hash_t *ht_super;
+
+ axis2_xml_schema_types_t obj_type;
};
-#define AXIS2_INTF_TO_IMPL(type) ((axis2_xml_schema_type_impl_t *) type)
+#define AXIS2_INTF_TO_IMPL(type) \
+ ((axis2_xml_schema_type_impl_t *) type)
/************************** function prototypes ******************************/
@@ -68,6 +73,14 @@
axis2_xml_schema_annotated_t *AXIS2_CALL
axis2_xml_schema_type_get_base_impl(void *type,
axis2_env_t **env);
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_type_type(void *type,
+ axis2_env_t **env);
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_type_super_objs(void *type,
+ axis2_env_t **env);
void *AXIS2_CALL
axis2_xml_schema_type_get_base_schema_type(void *type,
@@ -145,8 +158,10 @@
type_impl->annotated = NULL;
type_impl->base_schema_type = NULL;
type_impl->qname = NULL;
-
+ type_impl->ht_super = NULL;
+ type_impl->obj_type = AXIS2_XML_SCHEMA_TYPE;
type_impl->schema = schema;
+
type_impl->type.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_type_ops_t));
@@ -159,9 +174,14 @@
return NULL;
}
- type_impl->type.ops->free = axis2_xml_schema_type_free;
+ type_impl->type.ops->free =
+ axis2_xml_schema_type_free;
type_impl->type.ops->get_base_impl =
axis2_xml_schema_type_get_base_impl;
+ type_impl->type.ops->type =
+ axis2_xml_schema_type_type;
+ type_impl->type.ops->super_objs =
+ axis2_xml_schema_type_super_objs;
type_impl->type.ops->get_base_schema_type =
axis2_xml_schema_type_get_base_schema_type;
type_impl->type.ops->get_data_type =
@@ -205,6 +225,10 @@
axis2_xml_schema_type_free);
axis2_hash_set(type_impl->methods, "get_base_schema_type",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_type_get_base_schema_type);
+ axis2_hash_set(type_impl->methods, "type",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_type_type);
+ axis2_hash_set(type_impl->methods, "super_objs",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_type_super_objs);
axis2_hash_set(type_impl->methods, "get_data_type",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_type_get_data_type);
axis2_hash_set(type_impl->methods, "get_derive_by",
@@ -232,6 +256,23 @@
axis2_xml_schema_type_free(&(type_impl->annotated), env);
return NULL;
}
+ type_impl->ht_super = axis2_hash_make(env);
+ if(!type_impl->ht_super)
+ {
+ axis2_xml_schema_type_free(&(type_impl->annotated), env);
+ return NULL;
+ }
+ axis2_hash_set(type_impl->ht_super, "AXIS2_XML_SCHEMA_TYPE",
+ AXIS2_HASH_KEY_STRING, &(type_impl->type));
+
+ axis2_hash_set(type_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, type_impl->annotated);
+
+ axis2_hash_set(type_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(type_impl->annotated, env));
+
+
status = axis2_xml_schema_annotated_resolve_methods(
&(type_impl->type.base), env, type_impl->annotated,
type_impl->methods);
@@ -280,10 +321,8 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
type_impl = AXIS2_INTF_TO_IMPL(type);
-
return type_impl->annotated;
}
@@ -294,13 +333,13 @@
axis2_xml_schema_type_t *type_impl,
axis2_hash_t *methods)
{
- axis2_xml_schema_type_impl_t *type_impl_l = NULL;
+ axis2_xml_schema_type_impl_t *sch_type_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, type_impl, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
- type_impl_l = (axis2_xml_schema_type_impl_t *) type_impl;
+ sch_type_impl = (axis2_xml_schema_type_impl_t *) type_impl;
type->ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_type_ops_t));
@@ -312,33 +351,80 @@
type->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
- type->ops->get_base_impl =
- type_impl_l->type.ops->get_base_impl;
- type->ops->get_base_schema_type =
- type_impl_l->type.ops->get_base_schema_type;
- type->ops->get_data_type =
- type_impl_l->type.ops->get_data_type;
- type->ops->get_derive_by =
- type_impl_l->type.ops->get_derive_by;
+ type->ops->type = axis2_hash_get(methods, "type",
+ AXIS2_HASH_KEY_STRING);
+ type->ops->type = axis2_hash_get(methods, "super_objs",
+ AXIS2_HASH_KEY_STRING);
+
+
+ type->ops->get_base_schema_type = axis2_hash_get(methods, "get_base_schema_type",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_base_schema_type)
+ type->ops->get_base_schema_type =
+ sch_type_impl->type.ops->get_base_schema_type;
+
+ type->ops->get_data_type = axis2_hash_get(methods, "get_data_type",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_data_type)
+ type->ops->get_data_type =
+ sch_type_impl->type.ops->get_data_type;
+
+ type->ops->get_derive_by = axis2_hash_get(methods, "get_derive_by",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_derive_by)
+ type->ops->get_derive_by =
+ sch_type_impl->type.ops->get_derive_by;
+
+ type->ops->get_final = axis2_hash_get(methods, "get_final",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_final)
type->ops->get_final =
- type_impl_l->type.ops->get_final;
- type->ops->set_final =
- type_impl_l->type.ops->set_final;
+ sch_type_impl->type.ops->get_final;
+
+ type->ops->set_final = axis2_hash_get(methods, "set_final",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->set_final)
+ type->ops->set_final =
+ sch_type_impl->type.ops->set_final;
+
+ type->ops->get_final_resolved = axis2_hash_get(methods, "get_final_resolved",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_final_resolved)
type->ops->get_final_resolved =
- type_impl_l->type.ops->get_final_resolved;
+ sch_type_impl->type.ops->get_final_resolved;
+
+ type->ops->is_mixed = axis2_hash_get(methods, "is_mixed",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->is_mixed)
type->ops->is_mixed =
- type_impl_l->type.ops->is_mixed;
+ sch_type_impl->type.ops->is_mixed;
+
+ type->ops->set_mixed = axis2_hash_get(methods, "set_mixed",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->set_mixed)
type->ops->set_mixed =
- type_impl_l->type.ops->set_mixed;
- type->ops->get_name =
- type_impl_l->type.ops->get_name;
+ sch_type_impl->type.ops->set_mixed;
+
+ type->ops->get_name = axis2_hash_get(methods, "get_name",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_name)
+ type->ops->get_name =
+ sch_type_impl->type.ops->get_name;
+
+ type->ops->set_name = axis2_hash_get(methods, "set_name",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->set_name)
type->ops->set_name =
- type_impl_l->type.ops->set_name;
+ sch_type_impl->type.ops->set_name;
+
+ type->ops->get_qname = axis2_hash_get(methods, "get_qname",
+ AXIS2_HASH_KEY_STRING);
+ if(!type->ops->get_qname)
type->ops->get_qname =
- type_impl_l->type.ops->get_qname;
+ sch_type_impl->type.ops->get_qname;
return axis2_xml_schema_annotated_resolve_methods(&(type->base),
- env, type_impl_l->annotated, methods);
+ env, sch_type_impl->annotated, methods);
}
void *AXIS2_CALL
@@ -346,8 +432,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
return type_impl->base_schema_type;
}
@@ -356,8 +450,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
return type_impl->data_type;
}
@@ -366,8 +468,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
return type_impl->derive_by;
}
@@ -376,8 +486,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
return type_impl->final_derivation;
}
@@ -387,9 +505,17 @@
axis2_xml_schema_derivation_method_t *final_derivation)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, final_derivation, AXIS2_FAILURE);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return AXIS2_FAILURE;
+ }
if(NULL != type_impl->final_derivation)
{
AXIS2_XML_SCHEMA_DERIVATION_METHOD_FREE(type_impl->final_derivation, env);
@@ -404,8 +530,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
return type_impl->final_resolved;
}
@@ -415,8 +549,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return AXIS2_FAILURE;
+ }
return type_impl->is_mixed;
}
@@ -426,8 +568,16 @@
axis2_bool_t is_mixed)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return AXIS2_FAILURE;
+ }
return type_impl->is_mixed = is_mixed;
}
@@ -436,8 +586,16 @@
axis2_env_t **env)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
return type_impl->name;
}
@@ -447,9 +605,17 @@
axis2_char_t *name)
{
axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, name, AXIS2_FAILURE);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return AXIS2_FAILURE;
+ }
if(NULL != type_impl->name)
{
AXIS2_FREE((*env)->allocator, type_impl->name);
@@ -467,10 +633,19 @@
axis2_xml_schema_type_get_qname(void *type,
axis2_env_t **env)
{
- axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_xml_schema_type_impl_t *type_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
axis2_char_t *target_ns = NULL;
AXIS2_ENV_CHECK(env, NULL);
- type_impl = AXIS2_INTF_TO_IMPL(type);
+ ht_super = AXIS2_XML_SCHEMA_TYPE_SUPER_OBJS(type, env);
+ if(NULL != ht_super)
+ {
+ type_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_TYPE", AXIS2_HASH_KEY_STRING));
+ if(!type_impl)
+ return NULL;
+ }
+
if(!(type_impl->name))
{
return NULL;
@@ -490,3 +665,16 @@
return type_impl->qname;
}
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_type_type(void *type,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(type)->obj_type;
+}
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_type_super_objs(void *type,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(type)->ht_super;
+}
\ No newline at end of file
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_use.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_use.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_use.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_use.c Mon May 15 02:31:10 2006
@@ -25,10 +25,15 @@
struct axis2_xml_schema_use_impl
{
axis2_xml_schema_use_t use;
+
axis2_xml_schema_enum_t *schema_enum;
+
axis2_xml_schema_types_t obj_type;
- axis2_hash_t *super;
+
+ axis2_hash_t *ht_super;
+
axis2_hash_t *methods;
+
axis2_array_list_t *members;
};
@@ -81,9 +86,10 @@
use_impl->schema_enum = NULL;
use_impl->obj_type = AXIS2_XML_SCHEMA_USE;
- use_impl->super = NULL;
+ use_impl->ht_super = NULL;
use_impl->methods = NULL;
use_impl->members = NULL;
+ use_impl->use.base.ops = NULL;
use_impl->use.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_use_ops_t));
if(!use_impl->use.ops)
@@ -103,10 +109,14 @@
use_impl->members = axis2_array_list_create(env, 0);
if(!use_impl->members)
return NULL;
- AXIS2_ARRAY_LIST_ADD(use_impl->members, env, "none");
- AXIS2_ARRAY_LIST_ADD(use_impl->members, env, "optional");
- AXIS2_ARRAY_LIST_ADD(use_impl->members, env, "prohibited");
- AXIS2_ARRAY_LIST_ADD(use_impl->members, env, "required");
+ AXIS2_ARRAY_LIST_ADD(use_impl->members, env,
+ AXIS2_STRDUP(AXIS2_XML_SCHEMA_CONST_NONE, env));
+ AXIS2_ARRAY_LIST_ADD(use_impl->members, env,
+ AXIS2_STRDUP(AXIS2_XML_SCHEMA_CONST_OPTIONAL, env));
+ AXIS2_ARRAY_LIST_ADD(use_impl->members, env,
+ AXIS2_STRDUP(AXIS2_XML_SCHEMA_CONST_PROHIBITED, env));
+ AXIS2_ARRAY_LIST_ADD(use_impl->members, env,
+ AXIS2_STRDUP(AXIS2_XML_SCHEMA_CONST_REQUIRED, env));
use_impl->methods = axis2_hash_make(env);
if(!use_impl->methods)
@@ -128,18 +138,17 @@
use_impl->schema_enum = axis2_xml_schema_enum_create(env, value);
- use_impl->super = axis2_hash_make(env);
- if(!use_impl->super)
+ use_impl->ht_super = axis2_hash_make(env);
+ if(!use_impl->ht_super)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(use_impl->super, "AXIS2_XML_SCHEMA_USE", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(use_impl->ht_super, "AXIS2_XML_SCHEMA_USE", AXIS2_HASH_KEY_STRING,
&(use_impl->use));
- axis2_hash_set(use_impl->super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(use_impl->ht_super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING,
use_impl->schema_enum);
-
status = axis2_xml_schema_enum_resolve_methods(
&(use_impl->use.base), env, use_impl->schema_enum,
use_impl->methods);
@@ -181,10 +190,10 @@
use_impl->schema_enum = NULL;
}
- if(NULL != use_impl->super)
+ if(NULL != use_impl->ht_super)
{
- axis2_hash_free(use_impl->super, env);
- use_impl->super = NULL;
+ axis2_hash_free(use_impl->ht_super, env);
+ use_impl->ht_super = NULL;
}
if(NULL != use_impl->methods)
@@ -192,18 +201,20 @@
axis2_hash_free(use_impl->methods, env);
use_impl->methods = NULL;
}
-
- if((&(use_impl->use))->ops)
+ if(NULL != use_impl->use.base.ops)
{
- AXIS2_FREE((*env)->allocator, (&(use_impl->use))->ops);
- (&(use_impl->use))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, use_impl->use.base.ops);
+ use_impl->use.base.ops = NULL;
}
- if(use_impl)
+ if(NULL != use_impl->use.ops)
{
- AXIS2_FREE((*env)->allocator, use_impl);
- use_impl = NULL;
+ AXIS2_FREE((*env)->allocator, use_impl->use.ops);
+ use_impl->use.ops = NULL;
}
+
+ AXIS2_FREE((*env)->allocator, use_impl);
+ use_impl = NULL;
return AXIS2_SUCCESS;
}
@@ -213,11 +224,9 @@
axis2_env_t **env)
{
axis2_xml_schema_use_impl_t *use_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
use_impl = AXIS2_INTF_TO_IMPL(use);
-
- return use_impl->super;
+ return use_impl->ht_super;
}
axis2_xml_schema_types_t AXIS2_CALL
@@ -226,10 +235,8 @@
axis2_env_t **env)
{
axis2_xml_schema_use_impl_t *use_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
use_impl = AXIS2_INTF_TO_IMPL(use);
-
return use_impl->obj_type;
}
@@ -245,46 +252,6 @@
return use_impl->schema_enum;
}
-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_impl_t *use_impl_l = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, use_impl, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
-
- use_impl_l = (axis2_xml_schema_use_impl_t *) use_impl;
-
- use->ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_schema_use_ops_t));
- if(!use->ops)
- {
- AXIS2_ERROR_SET((*env)->error,
- AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- return AXIS2_FAILURE;
- }
- use->ops->free = axis2_hash_get(methods, "free",
- AXIS2_HASH_KEY_STRING);
- use->ops->super_objs = axis2_hash_get(methods, "super_objs",
- AXIS2_HASH_KEY_STRING);
- use->ops->type = axis2_hash_get(methods, "type",
- AXIS2_HASH_KEY_STRING);
-
- use->ops->get_values = axis2_hash_get(methods, "get_values",
- AXIS2_HASH_KEY_STRING);
- if(!use->ops->get_values)
- use->ops->get_values =
- use_impl_l->use.ops->get_values;
-
- return axis2_xml_schema_enum_resolve_methods(&(use->base),
- env, use_impl_l->schema_enum, methods);
-}
-
axis2_array_list_t *AXIS2_CALL
axis2_xml_schema_use_get_values(void *use,
axis2_env_t **env)
@@ -295,6 +262,8 @@
super = AXIS2_XML_SCHEMA_USE_SUPER_OBJS(use, env);
use_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_USE",
AXIS2_HASH_KEY_STRING));
- return use_impl->members;
+ if(NULL != use_impl)
+ return use_impl->members;
+ return NULL;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_xpath.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_xpath.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_xpath.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_xpath.c Mon May 15 02:31:10 2006
@@ -28,6 +28,10 @@
axis2_xml_schema_annotated_t *annotated;
axis2_hash_t *methods;
axis2_char_t *x_path;
+
+ axis2_hash_t *ht_super;
+
+ axis2_xml_schema_types_t obj_type;
};
#define AXIS2_INTF_TO_IMPL(xpath) ((axis2_xml_schema_xpath_impl_t *) xpath)
@@ -40,6 +44,14 @@
axis2_xml_schema_xpath_get_base_impl(void *xpath,
axis2_env_t **env);
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_xpath_type(void *xpath,
+ axis2_env_t **env);
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_xpath_super_objs(void *xpath,
+ axis2_env_t **env);
+
axis2_char_t *AXIS2_CALL
axis2_xml_schema_xpath_get_xpath(void *xpath,
axis2_env_t **env);
@@ -63,6 +75,8 @@
xpath_impl->annotated = NULL;
xpath_impl->methods = NULL;
xpath_impl->x_path = NULL;
+ xpath_impl->ht_super = NULL;
+ xpath_impl->obj_type = AXIS2_XML_SCHEMA_XPATH;
xpath_impl->xpath.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_xpath_ops_t));
@@ -73,6 +87,10 @@
axis2_xml_schema_xpath_get_xpath;
xpath_impl->xpath.ops->set_xpath =
axis2_xml_schema_xpath_set_xpath;
+ xpath_impl->xpath.ops->type =
+ axis2_xml_schema_xpath_type;
+ xpath_impl->xpath.ops->super_objs =
+ axis2_xml_schema_xpath_super_objs;
xpath_impl->methods = axis2_hash_make(env);
if(!xpath_impl->methods)
@@ -88,6 +106,21 @@
AXIS2_HASH_KEY_STRING, axis2_xml_schema_xpath_set_xpath);
xpath_impl->annotated = axis2_xml_schema_annotated_create(env);
+
+ xpath_impl->ht_super = axis2_hash_make(env);
+ if(!xpath_impl->ht_super)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ axis2_hash_set(xpath_impl->ht_super, "AXIS2_XML_SCHEMA_XPATH", AXIS2_HASH_KEY_STRING,
+ &(xpath_impl->xpath));
+ axis2_hash_set(xpath_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING,
+ xpath_impl->annotated);
+ axis2_hash_set(xpath_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(xpath_impl->annotated, env));
+
status = axis2_xml_schema_annotated_resolve_methods(
&(xpath_impl->xpath.base), env, xpath_impl->annotated,
xpath_impl->methods);
@@ -109,6 +142,11 @@
AXIS2_FREE((*env)->allocator, xpath_impl->x_path);
xpath_impl->x_path = NULL;
}
+ if(xpath_impl->ht_super)
+ {
+ axis2_hash_free(xpath_impl->ht_super, env);
+ xpath_impl->ht_super = NULL;
+ }
if(xpath_impl->methods)
{
@@ -148,6 +186,7 @@
return xpath_impl->annotated;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_xpath_resolve_methods(
axis2_xml_schema_xpath_t *xpath,
@@ -177,6 +216,7 @@
return axis2_xml_schema_annotated_resolve_methods(&(xpath->base),
env, xpath_impl_l->annotated, methods);
}
+*/
axis2_char_t *AXIS2_CALL
axis2_xml_schema_xpath_get_xpath(void *xpath,
@@ -211,4 +251,16 @@
return AXIS2_SUCCESS;
}
-
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_xpath_type(void *xpath,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(xpath)->obj_type;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_xpath_super_objs(void *xpath,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(xpath)->ht_super;
+}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_severity_type.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_severity_type.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_severity_type.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_severity_type.c Mon May 15 02:31:10 2006
@@ -26,9 +26,16 @@
struct axis2_xml_severity_type_impl
{
axis2_xml_severity_type_t severity_type;
+
axis2_xml_schema_enum_t *schema_enum;
+
axis2_hash_t *methods;
+
axis2_array_list_t *members;
+
+ axis2_hash_t *ht_super;
+
+ axis2_xml_schema_types_t type;
};
#define AXIS2_INTF_TO_IMPL(severity_type) \
@@ -42,17 +49,17 @@
axis2_xml_severity_type_get_base_impl(void *severity_type,
axis2_env_t **env);
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_severity_type_resolve_methods(
- axis2_xml_severity_type_t *severity_type,
- axis2_env_t **env,
- axis2_xml_severity_type_t *severity_type_impl,
- axis2_hash_t *methods);
-
axis2_array_list_t *AXIS2_CALL
axis2_xml_severity_type_get_values(void *severity_type,
axis2_env_t **env);
+axis2_hash_t *AXIS2_CALL
+axis2_xml_severity_type_super_objs(void *severity_type,
+ axis2_env_t **env);
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_severity_type_type(void *severity_type,
+ axis2_env_t **env);
AXIS2_DECLARE(axis2_xml_severity_type_t *)
axis2_xml_severity_type_create(axis2_env_t **env,
@@ -72,6 +79,9 @@
severity_type_impl->schema_enum = NULL;
severity_type_impl->methods = NULL;
severity_type_impl->members = NULL;
+ severity_type_impl->ht_super = NULL;
+ severity_type_impl->type = AXIS2_XML_SEVERITY_TYPE;
+
severity_type_impl->severity_type.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_severity_type_ops_t));
if(!severity_type_impl->severity_type.ops)
@@ -88,16 +98,21 @@
axis2_xml_severity_type_get_base_impl;
severity_type_impl->severity_type.ops->get_values =
axis2_xml_severity_type_get_values;
-
+ severity_type_impl->severity_type.ops->type =
+ axis2_xml_severity_type_type;
+ severity_type_impl->severity_type.ops->super_objs =
+ axis2_xml_severity_type_super_objs;
+
severity_type_impl->members = axis2_array_list_create(env, 0);
if(!severity_type_impl->members)
{
axis2_xml_severity_type_free(&(severity_type_impl->severity_type), env);
return NULL;
}
- AXIS2_ARRAY_LIST_ADD(severity_type_impl->members, env, "qualified");
- AXIS2_ARRAY_LIST_ADD(severity_type_impl->members, env, "unqualified");
- AXIS2_ARRAY_LIST_ADD(severity_type_impl->members, env, "none");
+ AXIS2_ARRAY_LIST_ADD(severity_type_impl->members, env,
+ AXIS2_STRDUP(AXIS2_XML_SCHEMA_CONST_ERROR, env));
+ AXIS2_ARRAY_LIST_ADD(severity_type_impl->members, env,
+ AXIS2_STRDUP(AXIS2_XML_SCHEMA_CONST_WARNING, env));
severity_type_impl->methods = axis2_hash_make(env);
if(!severity_type_impl->methods)
@@ -111,7 +126,11 @@
axis2_xml_severity_type_free);
axis2_hash_set(severity_type_impl->methods, "get_values", AXIS2_HASH_KEY_STRING,
axis2_xml_severity_type_get_values);
-
+ axis2_hash_set(severity_type_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
+ axis2_xml_severity_type_super_objs);
+ axis2_hash_set(severity_type_impl->methods, "type", AXIS2_HASH_KEY_STRING,
+ axis2_xml_severity_type_type);
+
severity_type_impl->schema_enum = axis2_xml_schema_enum_create(env, value);
if(!severity_type_impl->schema_enum)
{
@@ -120,6 +139,20 @@
return NULL;
}
+ severity_type_impl->ht_super = axis2_hash_make(env);
+ if(!severity_type_impl->ht_super)
+ {
+ axis2_xml_severity_type_free(&(severity_type_impl->severity_type), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ axis2_hash_set(severity_type_impl->ht_super, "AXIS2_XML_SEVERITY_TYPE",
+ AXIS2_HASH_KEY_STRING, &(severity_type_impl->severity_type));
+
+ axis2_hash_set(severity_type_impl->ht_super, "AXIS2_XML_SCHEMA_ENUM",
+ AXIS2_HASH_KEY_STRING, severity_type_impl->schema_enum);
+
status = axis2_xml_schema_enum_resolve_methods(
&(severity_type_impl->severity_type.base), env, severity_type_impl->schema_enum,
severity_type_impl->methods);
@@ -161,12 +194,16 @@
severity_type_impl->schema_enum = NULL;
}
- if((&(severity_type_impl->severity_type))->ops)
+ if(severity_type_impl->severity_type.ops)
{
- AXIS2_FREE((*env)->allocator, (&(severity_type_impl->severity_type))->ops);
- (&(severity_type_impl->severity_type))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, severity_type_impl->severity_type.ops);
+ severity_type_impl->severity_type.ops = NULL;
+ }
+ if(severity_type_impl->severity_type.base.ops)
+ {
+ AXIS2_FREE((*env)->allocator, severity_type_impl->severity_type.base.ops);
+ severity_type_impl->severity_type.base.ops = NULL;
}
-
if(severity_type_impl)
{
AXIS2_FREE((*env)->allocator, severity_type_impl);
@@ -186,38 +223,35 @@
return severity_type_impl->schema_enum;
}
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_severity_type_resolve_methods(
- axis2_xml_severity_type_t *severity_type,
- axis2_env_t **env,
- axis2_xml_severity_type_t *severity_type_impl,
- axis2_hash_t *methods)
-{
- axis2_xml_severity_type_impl_t *severity_type_impl_l = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, severity_type_impl, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
-
- severity_type_impl_l = (axis2_xml_severity_type_impl_t *) severity_type_impl;
-
- severity_type->ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_severity_type_ops_t));
- severity_type->ops->free = axis2_hash_get(methods, "free",
- AXIS2_HASH_KEY_STRING);
- severity_type->ops->get_base_impl =
- severity_type_impl_l->severity_type.ops->get_base_impl;
- severity_type->ops->get_values =
- severity_type_impl_l->severity_type.ops->get_values;
-
- return axis2_xml_schema_enum_resolve_methods(&(severity_type->base),
- env, severity_type_impl_l->schema_enum, methods);
-}
-
axis2_array_list_t* AXIS2_CALL
axis2_xml_severity_type_get_values(void *severity_type,
axis2_env_t **env)
{
+ /*
+ axis2_xml_severity_type_impl_t *severity_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
+ ht_super = AXIS2_XML_SEREVITY_TYPE_SUPER_OBJS(severity_type, env);
+ if(NULL != ht_super)
+ {
+ severity_impl = (axis2_xml_severity_type_impl_t*)
+ axis2_hash_get(ht_super, "AXIS2_XML_SEVERITY_TYPE", AXIS2_HASH_KEY_STRING);
+ return severity_impl->members;
+ }
+ */
return AXIS2_INTF_TO_IMPL(severity_type)->members;
}
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_severity_type_super_objs(void *severity_type,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(severity_type)->ht_super;
+}
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_severity_type_type(void *severity_type,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(severity_type)->type;
+}
\ No newline at end of file
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_tokenized_type.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_tokenized_type.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_tokenized_type.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_tokenized_type.c Mon May 15 02:31:10 2006
@@ -25,12 +25,22 @@
struct axis2_xml_tokenized_type_impl
{
axis2_xml_tokenized_type_t tokenized_type;
+
axis2_xml_schema_enum_t *schema_enum;
+
axis2_hash_t *methods;
+
axis2_array_list_t *members;
+
+ axis2_hash_t *ht_super;
+
+ axis2_xml_schema_types_t obj_type;
};
-#define AXIS2_INTF_TO_IMPL(tokenized_type) ((axis2_xml_tokenized_type_impl_t *) tokenized_type)
+#define AXIS2_INTF_TO_IMPL(tokenized_type) \
+ ((axis2_xml_tokenized_type_impl_t *) tokenized_type)
+
+/********************* function prototypes ***********************************/
axis2_status_t AXIS2_CALL
axis2_xml_tokenized_type_free(void *tokenized_type,
@@ -40,17 +50,19 @@
axis2_xml_tokenized_type_get_base_impl(void *tokenized_type,
axis2_env_t **env);
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_tokenized_type_resolve_methods(
- axis2_xml_tokenized_type_t *tokenized_type,
- axis2_env_t **env,
- axis2_xml_tokenized_type_t *tokenized_type_impl,
- axis2_hash_t *methods);
-
axis2_array_list_t * AXIS2_CALL
axis2_xml_tokenized_type_get_values(void *tokenized_type,
axis2_env_t **env);
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_tokenized_type_type(void *tokenized_type,
+ axis2_env_t **env);
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_tokenized_type_super_objs(void *tokenized_type,
+ axis2_env_t **env);
+
+/***************************** end macros **************************************/
AXIS2_DECLARE(axis2_xml_tokenized_type_t *)
axis2_xml_tokenized_type_create(axis2_env_t **env,
@@ -70,7 +82,9 @@
tokenized_type_impl->schema_enum = NULL;
tokenized_type_impl->methods = NULL;
tokenized_type_impl->members = NULL;
+ tokenized_type_impl->obj_type = AXIS2_XML_TOKENIZED_TYPE;
tokenized_type_impl->tokenized_type.ops = NULL;
+ tokenized_type_impl->ht_super = NULL;
tokenized_type_impl->tokenized_type.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_tokenized_type_ops_t));
@@ -90,28 +104,47 @@
tokenized_type_impl->tokenized_type.ops->get_values =
axis2_xml_tokenized_type_get_values;
+ tokenized_type_impl->tokenized_type.ops->type =
+ axis2_xml_tokenized_type_type;
+
+ tokenized_type_impl->tokenized_type.ops->super_objs =
+ axis2_xml_tokenized_type_super_objs;
+
tokenized_type_impl->members = axis2_array_list_create(env, 0);
if(!tokenized_type_impl->members)
return NULL;
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "CDATA");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "IDREF");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "IDREFS");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "ENTITY");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "ENTITIES");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "NMTOKEN");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "NMTOKENS");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "NOTATION");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "ENUMERATION");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "QName");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "NCName");
- AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env, "None");
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("CDATA", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("IDREF", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("IDREFS", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("ENTITY", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("ENTITIES", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("NMTOKEN", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("NMTOKENS", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("NOTATION", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("ENUMERATION", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("QName", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("NCName", env));
+ AXIS2_ARRAY_LIST_ADD(tokenized_type_impl->members, env,
+ AXIS2_STRDUP("None", env));
tokenized_type_impl->methods = axis2_hash_make(env);
if(!tokenized_type_impl->methods)
{
+ axis2_xml_tokenized_type_free(&(tokenized_type_impl->tokenized_type), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
@@ -121,7 +154,27 @@
axis2_hash_set(tokenized_type_impl->methods, "get_values", AXIS2_HASH_KEY_STRING,
axis2_xml_tokenized_type_get_values);
+ axis2_hash_set(tokenized_type_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
+ axis2_xml_tokenized_type_super_objs);
+
+ axis2_hash_set(tokenized_type_impl->methods, "type", AXIS2_HASH_KEY_STRING,
+ axis2_xml_tokenized_type_type);
+
tokenized_type_impl->schema_enum = axis2_xml_schema_enum_create(env, value);
+
+ tokenized_type_impl->ht_super = axis2_hash_make(env);
+ if(!tokenized_type_impl->ht_super)
+ {
+ axis2_xml_tokenized_type_free(&(tokenized_type_impl->tokenized_type), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ axis2_hash_set(tokenized_type_impl->ht_super , "AXIS2_XML_TOKENIZED_TYPE",
+ AXIS2_HASH_KEY_STRING, &(tokenized_type_impl->tokenized_type));
+
+ axis2_hash_set(tokenized_type_impl->ht_super, "AXIS2_XML_SCHEMA_ENUM",
+ AXIS2_HASH_KEY_STRING, tokenized_type_impl->schema_enum);
status = axis2_xml_schema_enum_resolve_methods(
&(tokenized_type_impl->tokenized_type.base), env, tokenized_type_impl->schema_enum,
@@ -164,10 +217,10 @@
tokenized_type_impl->schema_enum = NULL;
}
- if(NULL != (&(tokenized_type_impl->tokenized_type))->ops)
+ if(NULL != tokenized_type_impl->tokenized_type.ops)
{
- AXIS2_FREE((*env)->allocator, (&(tokenized_type_impl->tokenized_type))->ops);
- (&(tokenized_type_impl->tokenized_type))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, tokenized_type_impl->tokenized_type.ops);
+ tokenized_type_impl->tokenized_type.ops = NULL;
}
if(NULL != tokenized_type_impl)
@@ -182,54 +235,41 @@
axis2_xml_tokenized_type_get_base_impl(void *tokenized_type,
axis2_env_t **env)
{
- axis2_xml_tokenized_type_impl_t *tokenized_type_impl = NULL;
-
- AXIS2_ENV_CHECK(env, NULL);
- tokenized_type_impl = AXIS2_INTF_TO_IMPL(tokenized_type);
-
- return tokenized_type_impl->schema_enum;
-}
-
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_tokenized_type_resolve_methods(
- axis2_xml_tokenized_type_t *tokenized_type,
- axis2_env_t **env,
- axis2_xml_tokenized_type_t *tokenized_type_impl,
- axis2_hash_t *methods)
-{
- axis2_xml_tokenized_type_impl_t *tokenized_type_impl_l = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
- AXIS2_PARAM_CHECK((*env)->error, tokenized_type_impl, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
-
- tokenized_type_impl_l = (axis2_xml_tokenized_type_impl_t *)
- tokenized_type_impl;
-
- tokenized_type->ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_tokenized_type_ops_t));
- if(!tokenized_type->ops)
- {
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- return AXIS2_FAILURE;
- }
-
- tokenized_type->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING);
-
- tokenized_type->ops->get_base_impl =
- tokenized_type_impl_l->tokenized_type.ops->get_base_impl;
- tokenized_type->ops->get_values =
- tokenized_type_impl_l->tokenized_type.ops->get_values;
-
- return axis2_xml_schema_enum_resolve_methods(&(tokenized_type->base),
- env, tokenized_type_impl_l->schema_enum, methods);
+ return AXIS2_INTF_TO_IMPL(tokenized_type)->schema_enum;
}
axis2_array_list_t *AXIS2_CALL
axis2_xml_tokenized_type_get_values(void *tokenized_type,
axis2_env_t **env)
{
+ /*
+ axis2_xml_tokenized_type_impl_t *tokenized_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
+ ht_super = AXIS2_XML_TOKENIZED_TYPE_SUPER_OBJS(tokenized_type, env);
+ if(NULL != ht_super)
+ {
+ tokenized_impl = (axis2_xml_tokenized_type_impl_t*)
+ axis2_hash_get(tokenized_impl->ht_super, "AXIS2_XML_TOKENIZED_TYPE",
+ AXIS2_HASH_KEY_STRING);
+ if(NULL != tokenized_impl)
+ {
+ return tokenized_impl->members;
+ }
+ }
+ */
return AXIS2_INTF_TO_IMPL(tokenized_type)->members;
}
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_tokenized_type_type(void *tokenized_type,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(tokenized_type)->obj_type;
+}
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_tokenized_type_super_objs(void *tokenized_type,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(tokenized_type)->ht_super;
+}