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