00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_DESC_ELEMENT_H
00018 #define WODEN_DESC_ELEMENT_H
00019
00034 #include <axis2_allocator.h>
00035 #include <axis2_env.h>
00036 #include <axis2_error.h>
00037 #include <axis2_string.h>
00038 #include <axis2_utils.h>
00039 #include <axis2_hash.h>
00040 #include <axis2_qname.h>
00041 #include <axis2_uri.h>
00042 #include <woden.h>
00043 #include <woden_documentable_element.h>
00044 #include <woden_nested_element.h>
00045
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050
00051 typedef struct woden_desc_element woden_desc_element_t;
00052 typedef struct woden_desc_element_ops woden_desc_element_ops_t;
00053 typedef union woden_desc_element_base woden_desc_element_base_t;
00054
00060 struct woden_desc_element_ops
00061 {
00066 axis2_status_t (AXIS2_CALL *
00067 free) (
00068 void *desc_el,
00069 const axis2_env_t *env);
00070
00071 woden_obj_types_t (AXIS2_CALL *
00072 type) (void *desc_el,
00073 const axis2_env_t *env);
00074
00075 axis2_status_t (AXIS2_CALL *
00076 set_document_base_uri) (
00077 void *desc_ele,
00078 const axis2_env_t *env,
00079 axis2_uri_t *document_base_uri);
00080
00081 axis2_uri_t *(AXIS2_CALL *
00082 get_document_base_uri) (
00083 void *desc_ele,
00084 const axis2_env_t *env);
00085
00086
00087
00088
00089 axis2_status_t (AXIS2_CALL *
00090 set_target_namespace) (
00091 void *desc_ele,
00092 const axis2_env_t *env,
00093 axis2_uri_t *namespace_uri);
00094
00095 axis2_uri_t *(AXIS2_CALL *
00096 get_target_namespace) (
00097 void *desc_ele,
00098 const axis2_env_t *env);
00099
00113 axis2_status_t (AXIS2_CALL *
00114 add_namespace) (
00115 void *desc_el,
00116 const axis2_env_t *env,
00117 axis2_char_t *prefix,
00118 axis2_uri_t *namespc);
00119
00120 axis2_status_t (AXIS2_CALL *
00121 remove_namespace) (
00122 void *desc_el,
00123 const axis2_env_t *env,
00124 axis2_char_t *prefix);
00125
00134 axis2_uri_t *(AXIS2_CALL *
00135 get_namespace) (
00136 void *desc_el,
00137 const axis2_env_t *env,
00138 axis2_char_t *prefix);
00139
00140 axis2_hash_t *(AXIS2_CALL *
00141 get_namespaces) (
00142 void *desc_el,
00143 const axis2_env_t *env);
00144
00145
00146
00147
00148
00149 void *(AXIS2_CALL *
00150 create_documentation_element) (
00151 void *desc_el,
00152 const axis2_env_t *env);
00153
00154 void *(AXIS2_CALL *
00155 create_import_element) (
00156 void *desc_el,
00157 const axis2_env_t *env);
00158
00159 void *(AXIS2_CALL *
00160 create_include_element) (
00161 void *desc_el,
00162 const axis2_env_t *env);
00163
00164 void *(AXIS2_CALL *
00165 create_types_element) (
00166 void *desc_el,
00167 const axis2_env_t *env);
00168
00169 void *(AXIS2_CALL *
00170 create_interface_element) (
00171 void *desc_el,
00172 const axis2_env_t *env);
00173
00174 void *(AXIS2_CALL *
00175 create_interface_fault_element) (
00176 void *desc_el,
00177 const axis2_env_t *env);
00178
00179 void *(AXIS2_CALL *
00180 create_interface_op_element) (
00181 void *desc_el,
00182 const axis2_env_t *env);
00183
00184 void *(AXIS2_CALL *
00185 create_interface_fault_ref_element) (
00186 void *desc_el,
00187 const axis2_env_t *env);
00188
00189 void *(AXIS2_CALL *
00190 create_interface_msg_ref_element) (
00191 void *desc_el,
00192 const axis2_env_t *env);
00193
00194 void *(AXIS2_CALL *
00195 create_binding_element) (
00196 void *desc_el,
00197 const axis2_env_t *env);
00198
00199 void *(AXIS2_CALL *
00200 create_binding_fault_element) (
00201 void *desc_el,
00202 const axis2_env_t *env);
00203
00204 void *(AXIS2_CALL *
00205 create_binding_op_element) (
00206 void *desc_el,
00207 const axis2_env_t *env);
00208
00209 void *(AXIS2_CALL *
00210 create_binding_fault_ref_element) (
00211 void *desc_el,
00212 const axis2_env_t *env);
00213
00214 void *(AXIS2_CALL *
00215 create_binding_msg_ref_element) (
00216 void *desc_el,
00217 const axis2_env_t *env);
00218
00219 void *(AXIS2_CALL *
00220 create_feature_element) (
00221 void *desc_el,
00222 const axis2_env_t *env);
00223
00224 void *(AXIS2_CALL *
00225 create_svc_element) (
00226 void *desc_el,
00227 const axis2_env_t *env);
00228
00229 void *(AXIS2_CALL *
00230 create_endpoint_element) (
00231 void *desc_el,
00232 const axis2_env_t *env);
00233
00234 void *(AXIS2_CALL *
00235 create_property_element) (
00236 void *desc_el,
00237 const axis2_env_t *env);
00238
00239
00240
00241
00242
00243
00244
00245 axis2_status_t (AXIS2_CALL *
00246 add_import_element) (
00247 void *desc_ele,
00248 const axis2_env_t *env,
00249 void *import_el);
00250
00251 axis2_array_list_t *(AXIS2_CALL *
00252 get_import_elements) (
00253 void *desc_ele,
00254 const axis2_env_t *env);
00255
00256 axis2_status_t (AXIS2_CALL *
00257 add_include_element) (
00258 void *desc_ele,
00259 const axis2_env_t *env,
00260 void *include_el);
00261
00262 axis2_array_list_t *(AXIS2_CALL *
00263 get_include_elements) (
00264 void *desc_ele,
00265 const axis2_env_t *env);
00266
00267 axis2_status_t (AXIS2_CALL *
00268 set_types_element) (
00269 void *desc_ele,
00270 const axis2_env_t *env,
00271 void *types_el);
00272
00273 void *(AXIS2_CALL *
00274 get_types_element) (
00275 void *desc_ele,
00276 const axis2_env_t *env);
00277
00278 axis2_status_t (AXIS2_CALL *
00279 add_interface_element) (
00280 void *desc_ele,
00281 const axis2_env_t *env,
00282 void *interface_el);
00283
00284 axis2_array_list_t *(AXIS2_CALL *
00285 get_interface_elements) (
00286 void *desc_ele,
00287 const axis2_env_t *env);
00288
00289 axis2_status_t (AXIS2_CALL *
00290 add_binding_element) (
00291 void *desc_ele,
00292 const axis2_env_t *env,
00293 void *binding_el);
00294
00295 axis2_array_list_t *(AXIS2_CALL *
00296 get_binding_elements) (
00297 void *desc_ele,
00298 const axis2_env_t *env);
00299
00300 axis2_status_t (AXIS2_CALL *
00301 add_svc_element) (
00302 void *desc_ele,
00303 const axis2_env_t *env,
00304 void *svc_el);
00305
00306 axis2_array_list_t *(AXIS2_CALL *
00307 get_svc_elements) (
00308 void *desc_ele,
00309 const axis2_env_t *env);
00310
00311 axis2_status_t (AXIS2_CALL *
00312 set_ext_registry) (
00313 void *desc_ele,
00314 const axis2_env_t *env,
00315 void *ext_reg);
00316
00317 void *(AXIS2_CALL *
00318 get_ext_registry) (
00319 void *desc_ele,
00320 const axis2_env_t *env);
00321
00325 void *(AXIS2_CALL *
00326 to_component) (
00327 void *desc_ele,
00328 const axis2_env_t *env);
00329
00330
00331 };
00332
00333 struct woden_desc_element
00334 {
00335 woden_documentable_element_t documentable_element;
00336 woden_desc_element_ops_t *ops;
00337 };
00338
00339
00340 axis2_status_t AXIS2_CALL
00341 woden_desc_element_resolve_methods(
00342 woden_desc_element_t *desc_element,
00343 const axis2_env_t *env,
00344 axis2_hash_t *methods);
00345
00346
00347 #define WODEN_DESC_ELEMENT_FREE(desc_el, env) \
00348 (((woden_desc_element_t *) desc_el)->ops->\
00349 free (desc_el, env))
00350
00351 #define WODEN_DESC_ELEMENT_TYPE(desc_el, env) \
00352 (((woden_desc_element_t *) desc_el)->ops->\
00353 type (desc_el, env))
00354
00355 #define WODEN_DESC_ELEMENT_SET_DOCUMENT_BASE_URI(desc_el, env, document_base_uri) \
00356 (((woden_desc_element_t *) desc_el)->ops->\
00357 set_document_base_uri(desc_el, env, document_base_uri))
00358
00359 #define WODEN_DESC_ELEMENT_GET_DOCUMENT_BASE_URI(desc_el, env) \
00360 (((woden_desc_element_t *) desc_el)->ops->\
00361 get_document_base_uri(desc_el, env))
00362
00363 #define WODEN_DESC_ELEMENT_SET_TARGET_NAMESPACE(desc_el, env, namespc_uri) \
00364 (((woden_desc_element_t *) desc_el)->ops->\
00365 set_target_namespace(desc_el, env, namespc_uri))
00366
00367 #define WODEN_DESC_ELEMENT_GET_TARGET_NAMESPACE(desc_el, env) \
00368 (((woden_desc_element_t *) desc_el)->ops->\
00369 get_target_namespace(desc_el, env))
00370
00371 #define WODEN_DESC_ELEMENT_ADD_NAMESPACE(desc_el, env, prefix, namespc) \
00372 (((woden_desc_element_t *) desc_el)->ops->\
00373 add_namespace (desc_el, env, prefix, namespc))
00374
00375 #define WODEN_DESC_ELEMENT_REMOVE_NAMESPACE(desc_el, env, prefix) \
00376 (((woden_desc_element_t *) desc_el)->ops->\
00377 remove_namespace (desc_el, env, prefix))
00378
00379 #define WODEN_DESC_ELEMENT_GET_NAMESPACE(desc_el, env, prefix) \
00380 (((woden_desc_element_t *) desc_el)->ops->\
00381 get_namespace (desc_el, env, prefix))
00382
00383 #define WODEN_DESC_ELEMENT_GET_NAMESPACES(desc_el, env) \
00384 (((woden_desc_element_t *) desc_el)->ops->\
00385 get_namespaces (desc_el, env))
00386
00387 #define WODEN_DESC_ELEMENT_CREATE_DOCUMENTATION_ELEMENT(desc_el, env) \
00388 (((woden_desc_element_t *) desc_el)->ops->\
00389 create_documentation_element (desc_el, env))
00390
00391 #define WODEN_DESC_ELEMENT_CREATE_IMPORT_ELEMENT(desc_el, env) \
00392 (((woden_desc_element_t *) desc_el)->ops->\
00393 create_import_element (desc_el, env))
00394
00395 #define WODEN_DESC_ELEMENT_CREATE_INCLUDE_ELEMENT(desc_el, env) \
00396 (((woden_desc_element_t *) desc_el)->ops->\
00397 create_include_element (desc_el, env))
00398
00399 #define WODEN_DESC_ELEMENT_CREATE_TYPES_ELEMENT(desc_el, env) \
00400 (((woden_desc_element_t *) desc_el)->ops->\
00401 create_types_element (desc_el, env))
00402
00403 #define WODEN_DESC_ELEMENT_CREATE_INTERFACE_ELEMENT(desc_el, env) \
00404 (((woden_desc_element_t *) desc_el)->ops->\
00405 create_interface_element (desc_el, env))
00406
00407 #define WODEN_DESC_ELEMENT_CREATE_INTERFACE_FAULT_ELEMENT(desc_el, env) \
00408 (((woden_desc_element_t *) desc_el)->ops->\
00409 create_interface_fault_element (desc_el, env))
00410
00411 #define WODEN_DESC_ELEMENT_CREATE_INTERFACE_OP_ELEMENT(desc_el, env) \
00412 (((woden_desc_element_t *) desc_el)->ops->\
00413 create_interface_op_element (desc_el, env))
00414
00415 #define WODEN_DESC_ELEMENT_CREATE_INTERFACE_FAULT_REF_ELEMENT(desc_el, env) \
00416 (((woden_desc_element_t *) desc_el)->ops->\
00417 create_interface_fault_ref_element (desc_el, env))
00418
00419 #define WODEN_DESC_ELEMENT_CREATE_INTERFACE_MSG_REF_ELEMENT(desc_el, env) \
00420 (((woden_desc_element_t *) desc_el)->ops->\
00421 create_interface_msg_ref_element (desc_el, env))
00422
00423 #define WODEN_DESC_ELEMENT_CREATE_BINDING_ELEMENT(desc_el, env) \
00424 (((woden_desc_element_t *) desc_el)->ops->\
00425 create_binding_element (desc_el, env))
00426
00427 #define WODEN_DESC_ELEMENT_CREATE_BINDING_FAULT_ELEMENT(desc_el, env) \
00428 (((woden_desc_element_t *) desc_el)->ops->\
00429 create_binding_fault_element (desc_el, env))
00430
00431 #define WODEN_DESC_ELEMENT_CREATE_BINDING_OP_ELEMENT(desc_el, env) \
00432 (((woden_desc_element_t *) desc_el)->ops->\
00433 create_binding_op_element (desc_el, env))
00434
00435 #define WODEN_DESC_ELEMENT_CREATE_BINDING_FAULT_REF_ELEMENT(desc_el, env) \
00436 (((woden_desc_element_t *) desc_el)->ops->\
00437 create_binding_fault_ref_element (desc_el, env))
00438
00439 #define WODEN_DESC_ELEMENT_CREATE_BINDING_MSG_REF_ELEMENT(desc_el, env) \
00440 (((woden_desc_element_t *) desc_el)->ops->\
00441 create_binding_msg_ref_element (desc_el, env))
00442
00443 #define WODEN_DESC_ELEMENT_CREATE_FEATURE_ELEMENT(desc_el, env) \
00444 (((woden_desc_element_t *) desc_el)->ops->\
00445 create_feature_element (desc_el, env))
00446
00447 #define WODEN_DESC_ELEMENT_CREATE_SVC_ELEMENT(desc_el, env) \
00448 (((woden_desc_element_t *) desc_el)->ops->\
00449 create_svc_element (desc_el, env))
00450
00451 #define WODEN_DESC_ELEMENT_CREATE_ENDPOINT_ELEMENT(desc_el, env) \
00452 (((woden_desc_element_t *) desc_el)->ops->\
00453 create_endpoint_element (desc_el, env))
00454
00455 #define WODEN_DESC_ELEMENT_CREATE_PROPERTY_ELEMENT(desc_el, env) \
00456 (((woden_desc_element_t *) desc_el)->ops->\
00457 create_property_element (desc_el, env))
00458
00459 #define WODEN_DESC_ELEMENT_ADD_IMPORT_ELEMENT(desc_el, env, import_el) \
00460 (((woden_desc_element_t *) desc_el)->ops->\
00461 add_import_element (desc_el, env, import_el))
00462
00463 #define WODEN_DESC_ELEMENT_GET_IMPORT_ELEMENTS(desc_el, env) \
00464 (((woden_desc_element_t *) desc_el)->ops->\
00465 get_import_elements (desc_el, env))
00466
00467 #define WODEN_DESC_ELEMENT_ADD_INCLUDE_ELEMENT(desc_el, env, include_el) \
00468 (((woden_desc_element_t *) desc_el)->ops->\
00469 add_include_element (desc_el, env, include_el))
00470
00471 #define WODEN_DESC_ELEMENT_GET_INCLUDE_ELEMENTS(desc_el, env) \
00472 (((woden_desc_element_t *) desc_el)->ops->\
00473 get_include_elements (desc_el, env))
00474
00475 #define WODEN_DESC_ELEMENT_SET_TYPES_ELEMENT(desc_el, env, types_el) \
00476 (((woden_desc_element_t *) desc_el)->ops->\
00477 set_types_element (desc_el, env, types_el))
00478
00479 #define WODEN_DESC_ELEMENT_GET_TYPES_ELEMENT(desc_el, env) \
00480 (((woden_desc_element_t *) desc_el)->ops->\
00481 get_types_element (desc_el, env))
00482
00483 #define WODEN_DESC_ELEMENT_ADD_INTERFACE_ELEMENT(desc_el, env, interface_el) \
00484 (((woden_desc_element_t *) desc_el)->ops->\
00485 add_interface_element (desc_el, env, interface_el))
00486
00487 #define WODEN_DESC_ELEMENT_GET_INTERFACE_ELEMENTS(desc_el, env) \
00488 (((woden_desc_element_t *) desc_el)->ops->\
00489 get_interface_elements (desc_el, env))
00490
00491 #define WODEN_DESC_ELEMENT_ADD_BINDING_ELEMENT(desc_el, env, binding_el) \
00492 (((woden_desc_element_t *) desc_el)->ops->\
00493 add_binding_element (desc_el, env, binding_el))
00494
00495 #define WODEN_DESC_ELEMENT_GET_BINDING_ELEMENTS(desc_el, env) \
00496 (((woden_desc_element_t *) desc_el)->ops->\
00497 get_svc_elements (desc_el, env))
00498
00499 #define WODEN_DESC_ELEMENT_ADD_SVC_ELEMENT(desc_el, env, svc_el) \
00500 (((woden_desc_element_t *) desc_el)->ops->\
00501 add_svc_element (desc_el, env, svc_el))
00502
00503 #define WODEN_DESC_ELEMENT_GET_SVC_ELEMENTS(desc_el, env) \
00504 (((woden_desc_element_t *) desc_el)->ops->\
00505 get_svc_elements (desc_el, env))
00506
00507 #define WODEN_DESC_ELEMENT_SET_EXT_REGISTRY(desc_el, env, ext_reg) \
00508 (((woden_desc_element_t *) desc_el)->ops->\
00509 set_ext_registry (desc_el, env, ext_reg))
00510
00511 #define WODEN_DESC_ELEMENT_GET_EXT_REGISTRY(desc_el, env) \
00512 (((woden_desc_element_t *) desc_el)->ops->\
00513 get_ext_registry (desc_el, env))
00514
00515 #define WODEN_DESC_ELEMENT_TO_COMPONENT(desc_el, env) \
00516 (((woden_desc_element_t *) desc_el)->ops->\
00517 to_component (desc_el, env))
00518
00519
00521 #ifdef __cplusplus
00522 }
00523 #endif
00524 #endif
00525