Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

xml_schema_annotated.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef XML_SCHEMA_ANNOTATED_H
00018 #define XML_SCHEMA_ANNOTATED_H
00019 
00025 #include <xml_schema_defines.h>
00026 #include <xml_schema_obj.h>
00027 
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037 
00038 typedef struct xml_schema_annotated 
00039                     xml_schema_annotated_t;
00040 typedef struct xml_schema_annotated_ops 
00041                     xml_schema_annotated_ops_t;
00042                     
00043 struct xml_schema_annotated_ops
00044 {
00045     axis2_status_t (AXIS2_CALL *
00046     free)(void *annotated,
00047           const axis2_env_t *env);
00048     
00049     axis2_hash_t *(AXIS2_CALL *
00050     super_objs)(
00051             void *annotated,
00052             const axis2_env_t *env);
00053     
00054     xml_schema_types_t (AXIS2_CALL *
00055     get_type)(
00056             void *annotated,
00057             const axis2_env_t *env);
00058 
00059     xml_schema_obj_t *(AXIS2_CALL *
00060     get_base_impl)(
00061             void *annotated,
00062             const axis2_env_t *env);
00063 
00064     axis2_char_t *(AXIS2_CALL *
00065     get_id) (void *annotated,
00066              const axis2_env_t *env);
00067 
00068     axis2_status_t (AXIS2_CALL *
00069     set_id) (
00070             void *annotated,
00071             const axis2_env_t *env,
00072             axis2_char_t *id);
00073 
00074     struct xml_schema_annotation *(AXIS2_CALL *
00075     get_annotation) (
00076             void *annotated,
00077             const axis2_env_t *env);
00078 
00079     axis2_status_t (AXIS2_CALL *
00080     set_annotation)(
00081             void *annotated,
00082             const axis2_env_t *env,
00083             struct xml_schema_annotation *annotation);
00084 
00085     axis2_array_list_t *(AXIS2_CALL *
00086     get_unhandled_attrs) (
00087             void *annotated,
00088             const axis2_env_t *env);
00089 
00090     axis2_status_t (AXIS2_CALL *
00091     set_unhandled_attrs) (
00092             void *annotated,
00093             const axis2_env_t *env,
00094             axis2_array_list_t *unhandled_attrs);
00095 };
00096 
00097 struct xml_schema_annotated
00098 {
00099     xml_schema_obj_t base;
00100     xml_schema_annotated_ops_t *ops;
00101 };
00102 
00103 AXIS2_EXTERN xml_schema_annotated_t * AXIS2_CALL
00104 xml_schema_annotated_create(const axis2_env_t *env);
00105 
00109 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00110 xml_schema_annotated_resolve_methods(
00111                                 xml_schema_annotated_t *annotated,
00112                                 const axis2_env_t *env,
00113                                 xml_schema_annotated_t *annotated_impl,
00114                                 axis2_hash_t *methods);
00115                                 
00116 /*************** Macros *******************************************************/                                
00117 
00118 #define XML_SCHEMA_ANNOTATED_FREE(annotated, env) \
00119       (((xml_schema_annotated_t *) annotated)->ops->free(\
00120             annotated, env))
00121 
00122 #define XML_SCHEMA_ANNOTATED_SUPER_OBJS(annotated, env) \
00123       (((xml_schema_annotated_t *) annotated)->ops->super_objs(\
00124             annotated, env))
00125 
00126 #define XML_SCHEMA_ANNOTATED_GET_TYPE(annotated, env) \
00127       (((xml_schema_annotated_t *) annotated)->ops->get_type(\
00128             annotated, env))
00129 
00130 #define XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env) \
00131       (((xml_schema_annotated_t *) annotated)->ops->get_base_impl(\
00132             annotated, env))
00133 
00134 #define XML_SCHEMA_ANNOTATED_GET_ID(annotated, env) \
00135       (((xml_schema_annotated_t *) annotated)->ops->get_id(\
00136             annotated, env))
00137 
00138 #define XML_SCHEMA_ANNOTATED_SET_ID(annotated, env, id) \
00139       (((xml_schema_annotated_t *) annotated)->ops->set_id(\
00140             annotated, env, id))
00141 
00142 #define XML_SCHEMA_ANNOTATED_GET_ANNOTATION(annotated, env) \
00143       (((xml_schema_annotated_t *) annotated)->ops->get_annotation(\
00144             annotated, env))
00145 
00146 #define XML_SCHEMA_ANNOTATED_SET_ANNOTATION(annotated, env, \
00147         annotation) \
00148       (((xml_schema_annotated_t *) annotated)->ops->set_annotation(\
00149             annotated, env, annotation))
00150 
00151 #define XML_SCHEMA_ANNOTATED_GET_UNHANDLED_ATTRS(annotated, env) \
00152       (((xml_schema_annotated_t *) annotated)->ops->get_unhandled_attrs(\
00153             annotated, env))
00154 
00155 #define XML_SCHEMA_ANNOTATED_SET_UNHANDLED_ATTRS(annotated, \
00156         env, unhandled_attrs) \
00157       (((xml_schema_annotated_t *) annotated)->ops->set_unhandled_attrs(\
00158             annotated, env, unhandled_attrs))
00159 
00160 /**************************** end macros ***************************************/
00162 #ifdef __cplusplus
00163 }
00164 #endif
00165 #endif /* XML_SCHEMA_ANNOTATED_H */

Generated on Fri Jun 16 18:02:32 2006 for Axis2/C by  doxygen 1.4.2