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 
00035 #include <xml_schema_defines.h>
00036 #include <xml_schema_obj.h>
00037                     
00038 #ifdef __cplusplus
00039 extern "C"
00040 {
00041 #endif
00042 
00044 typedef struct xml_schema_annotated xml_schema_annotated_t;
00045 
00047 typedef struct xml_schema_annotated_ops xml_schema_annotated_ops_t;
00048                     
00052 struct xml_schema_annotated_ops
00053 {
00060     axis2_status_t (AXIS2_CALL *
00061     free)(void *annotated,
00062           const axis2_env_t *env);
00063     
00070     axis2_hash_t *(AXIS2_CALL *
00071     super_objs)(
00072             void *annotated,
00073             const axis2_env_t *env);
00074     
00082     xml_schema_types_t (AXIS2_CALL *
00083     get_type)(
00084             void *annotated,
00085             const axis2_env_t *env);
00092     xml_schema_obj_t *(AXIS2_CALL *
00093     get_base_impl)(
00094             void *annotated,
00095             const axis2_env_t *env);
00096 
00103     axis2_char_t *(AXIS2_CALL *
00104     get_id) (void *annotated,
00105              const axis2_env_t *env);
00106 
00107     
00115     axis2_status_t (AXIS2_CALL *
00116     set_id) (
00117             void *annotated,
00118             const axis2_env_t *env,
00119             axis2_char_t *id);
00120 
00127     struct xml_schema_annotation *(AXIS2_CALL *
00128     get_annotation) (
00129             void *annotated,
00130             const axis2_env_t *env);
00138     axis2_status_t (AXIS2_CALL *
00139     set_annotation)(
00140             void *annotated,
00141             const axis2_env_t *env,
00142             struct xml_schema_annotation *annotation);
00143 
00152     axis2_array_list_t *(AXIS2_CALL *
00153     get_unhandled_attrs) (
00154             void *annotated,
00155             const axis2_env_t *env);
00163     axis2_status_t (AXIS2_CALL *
00164     set_unhandled_attrs) (
00165             void *annotated,
00166             const axis2_env_t *env,
00167             axis2_array_list_t *unhandled_attrs);
00168 };
00169 
00174 struct xml_schema_annotated
00175 {
00176     xml_schema_obj_t base;
00177     xml_schema_annotated_ops_t *ops;
00178 };
00179 
00185 AXIS2_EXTERN xml_schema_annotated_t * AXIS2_CALL
00186 xml_schema_annotated_create(const axis2_env_t *env);
00187 
00191 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00192 xml_schema_annotated_resolve_methods(
00193                                 xml_schema_annotated_t *annotated,
00194                                 const axis2_env_t *env,
00195                                 xml_schema_annotated_t *annotated_impl,
00196                                 XML_SCHEMA_SUPER_OBJS_FN super_objs,
00197                                 XML_SCHEMA_GET_TYPE_FN get_type,
00198                                 XML_SCHEMA_FREE_FN free_fn);
00199                                 
00202 #define XML_SCHEMA_ANNOTATED_FREE(annotated, env) \
00203       (((xml_schema_annotated_t *) annotated)->ops->free(\
00204             annotated, env))
00205 
00208 #define XML_SCHEMA_ANNOTATED_SUPER_OBJS(annotated, env) \
00209       (((xml_schema_annotated_t *) annotated)->ops->super_objs(\
00210             annotated, env))
00211 
00214 #define XML_SCHEMA_ANNOTATED_GET_TYPE(annotated, env) \
00215       (((xml_schema_annotated_t *) annotated)->ops->get_type(\
00216             annotated, env))
00217 
00220 #define XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env) \
00221       (((xml_schema_annotated_t *) annotated)->ops->get_base_impl(\
00222             annotated, env))
00223 
00226 #define XML_SCHEMA_ANNOTATED_GET_ID(annotated, env) \
00227       (((xml_schema_annotated_t *) annotated)->ops->get_id(\
00228             annotated, env))
00229 
00232 #define XML_SCHEMA_ANNOTATED_SET_ID(annotated, env, id) \
00233       (((xml_schema_annotated_t *) annotated)->ops->set_id(\
00234             annotated, env, id))
00235 
00238 #define XML_SCHEMA_ANNOTATED_GET_ANNOTATION(annotated, env) \
00239       (((xml_schema_annotated_t *) annotated)->ops->get_annotation(\
00240             annotated, env))
00241 
00243 #define XML_SCHEMA_ANNOTATED_SET_ANNOTATION(annotated, env, \
00244         annotation) \
00245       (((xml_schema_annotated_t *) annotated)->ops->set_annotation(\
00246             annotated, env, annotation))
00247 
00250 #define XML_SCHEMA_ANNOTATED_GET_UNHANDLED_ATTRS(annotated, env) \
00251       (((xml_schema_annotated_t *) annotated)->ops->get_unhandled_attrs(\
00252             annotated, env))
00253 
00256 #define XML_SCHEMA_ANNOTATED_SET_UNHANDLED_ATTRS(annotated, \
00257         env, unhandled_attrs) \
00258       (((xml_schema_annotated_t *) annotated)->ops->set_unhandled_attrs(\
00259             annotated, env, unhandled_attrs))
00260 
00262 #ifdef __cplusplus
00263 }
00264 #endif
00265 #endif /* XML_SCHEMA_ANNOTATED_H */

Generated on Thu Oct 26 21:11:25 2006 for Axis2/C by  doxygen 1.4.7