woden_wsdl10_desc_element.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 WODEN_WSDL10_DESC_ELEMENT_H
00018 #define WODEN_WSDL10_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_wsdl10_desc_element woden_wsdl10_desc_element_t;
00052 typedef struct woden_wsdl10_desc_element_ops woden_wsdl10_desc_element_ops_t;
00053 typedef union woden_wsdl10_desc_element_base woden_wsdl10_desc_element_base_t;
00054 
00060 struct woden_wsdl10_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      * Attributes and namespaces
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);/* TODO return arrays instead of Map? */
00144     
00145     /*
00146      * Element factory methods
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_msg_element) (
00171             void *desc_el,
00172             const axis2_env_t *env);
00173 
00174     void *(AXIS2_CALL *
00175     create_part_element) (
00176             void *desc_el,
00177             const axis2_env_t *env);
00178 
00179     void *(AXIS2_CALL *
00180     create_interface_element) (
00181             void *desc_el,
00182             const axis2_env_t *env);
00183 
00184     void *(AXIS2_CALL *
00185     create_interface_fault_element) (
00186             void *desc_el,
00187             const axis2_env_t *env);
00188 
00189     void *(AXIS2_CALL *
00190     create_interface_op_element) (
00191             void *desc_el,
00192             const axis2_env_t *env);
00193 
00194     void *(AXIS2_CALL *
00195     create_interface_fault_ref_element) (
00196             void *desc_el,
00197             const axis2_env_t *env);
00198 
00199     void *(AXIS2_CALL *
00200     create_interface_msg_ref_element) (
00201             void *desc_el,
00202             const axis2_env_t *env);
00203     
00204     void *(AXIS2_CALL *
00205     create_binding_element) (
00206             void *desc_el,
00207             const axis2_env_t *env);
00208 
00209     void *(AXIS2_CALL *
00210     create_binding_fault_element) (
00211             void *desc_el,
00212             const axis2_env_t *env);
00213 
00214     void *(AXIS2_CALL *
00215     create_binding_op_element) (
00216             void *desc_el,
00217             const axis2_env_t *env);
00218 
00219     void *(AXIS2_CALL *
00220     create_binding_fault_ref_element) (
00221             void *desc_el,
00222             const axis2_env_t *env);
00223 
00224     void *(AXIS2_CALL *
00225     create_binding_msg_ref_element) (
00226             void *desc_el,
00227             const axis2_env_t *env);
00228 
00229     void *(AXIS2_CALL *
00230     create_feature_element) (
00231             void *desc_el,
00232             const axis2_env_t *env);
00233 
00234     void *(AXIS2_CALL *
00235     create_svc_element) (
00236             void *desc_el,
00237             const axis2_env_t *env);
00238 
00239     void *(AXIS2_CALL *
00240     create_endpoint_element) (
00241             void *desc_el,
00242             const axis2_env_t *env);
00243 
00244     void *(AXIS2_CALL *
00245     create_property_element) (
00246             void *desc_el,
00247             const axis2_env_t *env);
00248     
00249     /*
00250      * Element accessor and modifier methods
00251      * 
00252      * TODO removeXXX(obj), getXXX(key) methods
00253      * 
00254      */
00255     axis2_status_t (AXIS2_CALL *
00256     add_import_element) (
00257             void *desc_ele,
00258             const axis2_env_t *env,
00259             void *import_el);
00260     
00261     axis2_array_list_t *(AXIS2_CALL *
00262     get_import_elements) (
00263             void *desc_ele,
00264             const axis2_env_t *env);
00265     
00266     axis2_status_t (AXIS2_CALL *
00267     add_include_element) (
00268             void *desc_ele,
00269             const axis2_env_t *env,
00270             void *include_el);
00271     
00272     axis2_array_list_t *(AXIS2_CALL *
00273     get_include_elements) (
00274             void *desc_ele,
00275             const axis2_env_t *env);
00276     
00277     axis2_status_t (AXIS2_CALL *
00278     set_types_element) (
00279             void *desc_ele,
00280             const axis2_env_t *env,
00281             void *types_el);
00282     
00283     void *(AXIS2_CALL *
00284     get_types_element) (
00285             void *desc_ele,
00286             const axis2_env_t *env);
00287     
00288     axis2_status_t (AXIS2_CALL *
00289     add_msg_element) (
00290             void *desc_ele,
00291             const axis2_env_t *env,
00292             void *msg_el);
00293     
00294     axis2_status_t (AXIS2_CALL *
00295     add_interface_element) (
00296             void *desc_ele,
00297             const axis2_env_t *env,
00298             void *interface_el);
00299     
00300     axis2_array_list_t *(AXIS2_CALL *
00301     get_msg_elements) (
00302             void *desc_ele,
00303             const axis2_env_t *env);
00304     
00305     axis2_array_list_t *(AXIS2_CALL *
00306     get_interface_elements) (
00307             void *desc_ele,
00308             const axis2_env_t *env);
00309     
00310     axis2_status_t (AXIS2_CALL *
00311     add_binding_element) (
00312             void *desc_ele,
00313             const axis2_env_t *env,
00314             void *binding_el);
00315     
00316     axis2_array_list_t *(AXIS2_CALL *
00317     get_binding_elements) (
00318             void *desc_ele,
00319             const axis2_env_t *env);
00320     
00321     axis2_status_t (AXIS2_CALL *
00322     add_svc_element) (
00323             void *desc_ele,
00324             const axis2_env_t *env,
00325             void *svc_el);
00326     
00327     axis2_array_list_t *(AXIS2_CALL *
00328     get_svc_elements) (
00329             void *desc_ele,
00330             const axis2_env_t *env);
00331 
00332     axis2_status_t (AXIS2_CALL *
00333     set_ext_registry) (
00334             void *desc_ele,
00335             const axis2_env_t *env,
00336             void *ext_reg);
00337     
00338     void *(AXIS2_CALL *
00339     get_ext_registry) (
00340             void *desc_ele,
00341             const axis2_env_t *env);
00342 
00346     void *(AXIS2_CALL *
00347     to_component) (
00348             void *desc_ele,
00349             const axis2_env_t *env);
00350     
00351 
00352 };
00353 
00354 struct woden_wsdl10_desc_element
00355 {
00356     woden_documentable_element_t documentable_element;
00357     woden_wsdl10_desc_element_ops_t *ops;
00358 };
00359 
00360 /************************Woden C Internal Methods******************************/
00361 axis2_status_t AXIS2_CALL
00362 woden_wsdl10_desc_element_resolve_methods(
00363         woden_wsdl10_desc_element_t *desc_element,
00364         const axis2_env_t *env,
00365         axis2_hash_t *methods);
00366 /************************End of Woden C Internal Methods***********************/
00367 
00368 #define WODEN_WSDL10_DESC_ELEMENT_FREE(desc_el, env) \
00369       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00370          free (desc_el, env))
00371 
00372 #define WODEN_WSDL10_DESC_ELEMENT_TYPE(desc_el, env) \
00373       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00374          type (desc_el, env))
00375 
00376 #define WODEN_WSDL10_DESC_ELEMENT_SET_DOCUMENT_BASE_URI(desc_el, env, document_base_uri) \
00377       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00378          set_document_base_uri(desc_el, env, document_base_uri))
00379 
00380 #define WODEN_WSDL10_DESC_ELEMENT_GET_DOCUMENT_BASE_URI(desc_el, env) \
00381       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00382          get_document_base_uri(desc_el, env))
00383 
00384 #define WODEN_WSDL10_DESC_ELEMENT_SET_TARGET_NAMESPACE(desc_el, env, namespc_uri) \
00385       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00386          set_target_namespace(desc_el, env, namespc_uri))
00387 
00388 #define WODEN_WSDL10_DESC_ELEMENT_GET_TARGET_NAMESPACE(desc_el, env) \
00389       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00390          get_target_namespace(desc_el, env))
00391 
00392 #define WODEN_WSDL10_DESC_ELEMENT_ADD_NAMESPACE(desc_el, env, prefix, namespc) \
00393       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00394         add_namespace (desc_el, env, prefix, namespc))
00395 
00396 #define WODEN_WSDL10_DESC_ELEMENT_REMOVE_NAMESPACE(desc_el, env, prefix) \
00397       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00398         remove_namespace (desc_el, env, prefix))
00399 
00400 #define WODEN_WSDL10_DESC_ELEMENT_GET_NAMESPACE(desc_el, env, prefix) \
00401       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00402         get_namespace (desc_el, env, prefix))
00403 
00404 #define WODEN_WSDL10_DESC_ELEMENT_GET_NAMESPACES(desc_el, env) \
00405       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00406         get_namespaces (desc_el, env))
00407 
00408 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_DOCUMENTATION_ELEMENT(desc_el, env) \
00409       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00410         create_documentation_element (desc_el, env))
00411 
00412 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_IMPORT_ELEMENT(desc_el, env) \
00413       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00414         create_import_element (desc_el, env))
00415 
00416 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_INCLUDE_ELEMENT(desc_el, env) \
00417       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00418         create_include_element (desc_el, env))
00419 
00420 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_TYPES_ELEMENT(desc_el, env) \
00421       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00422         create_types_element (desc_el, env))
00423 
00424 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_MSG_ELEMENT(desc_el, env) \
00425       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00426         create_msg_element (desc_el, env))
00427 
00428 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_PART_ELEMENT(desc_el, env) \
00429       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00430         create_part_element (desc_el, env))
00431 
00432 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_INTERFACE_ELEMENT(desc_el, env) \
00433       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00434         create_interface_element (desc_el, env))
00435 
00436 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_INTERFACE_FAULT_ELEMENT(desc_el, env) \
00437       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00438         create_interface_fault_element (desc_el, env))
00439 
00440 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_INTERFACE_OP_ELEMENT(desc_el, env) \
00441       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00442         create_interface_op_element (desc_el, env))
00443 
00444 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_INTERFACE_FAULT_REF_ELEMENT(desc_el, env) \
00445       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00446         create_interface_fault_ref_element (desc_el, env))
00447 
00448 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_INTERFACE_MSG_REF_ELEMENT(desc_el, env) \
00449       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00450         create_interface_msg_ref_element (desc_el, env))
00451 
00452 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_BINDING_ELEMENT(desc_el, env) \
00453       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00454         create_binding_element (desc_el, env))
00455 
00456 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_BINDING_FAULT_ELEMENT(desc_el, env) \
00457       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00458         create_binding_fault_element (desc_el, env))
00459 
00460 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_BINDING_OP_ELEMENT(desc_el, env) \
00461       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00462         create_binding_op_element (desc_el, env))
00463 
00464 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_BINDING_FAULT_REF_ELEMENT(desc_el, env) \
00465       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00466         create_binding_fault_ref_element (desc_el, env))
00467 
00468 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_BINDING_MSG_REF_ELEMENT(desc_el, env) \
00469       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00470         create_binding_msg_ref_element (desc_el, env))
00471 
00472 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_FEATURE_ELEMENT(desc_el, env) \
00473       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00474         create_feature_element (desc_el, env))
00475 
00476 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_SVC_ELEMENT(desc_el, env) \
00477       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00478         create_svc_element (desc_el, env))
00479 
00480 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_ENDPOINT_ELEMENT(desc_el, env) \
00481       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00482         create_endpoint_element (desc_el, env))
00483 
00484 #define WODEN_WSDL10_DESC_ELEMENT_CREATE_PROPERTY_ELEMENT(desc_el, env) \
00485       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00486         create_property_element (desc_el, env))
00487 
00488 #define WODEN_WSDL10_DESC_ELEMENT_ADD_IMPORT_ELEMENT(desc_el, env, import_el) \
00489       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00490         add_import_element (desc_el, env, import_el))
00491 
00492 #define WODEN_WSDL10_DESC_ELEMENT_GET_IMPORT_ELEMENTS(desc_el, env) \
00493       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00494         get_import_elements (desc_el, env))
00495 
00496 #define WODEN_WSDL10_DESC_ELEMENT_ADD_INCLUDE_ELEMENT(desc_el, env, include_el) \
00497       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00498         add_include_element (desc_el, env, include_el))
00499 
00500 #define WODEN_WSDL10_DESC_ELEMENT_GET_INCLUDE_ELEMENTS(desc_el, env) \
00501       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00502         get_include_elements (desc_el, env))
00503 
00504 #define WODEN_WSDL10_DESC_ELEMENT_SET_TYPES_ELEMENT(desc_el, env, types_el) \
00505       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00506         set_types_element (desc_el, env, types_el))
00507 
00508 #define WODEN_WSDL10_DESC_ELEMENT_GET_TYPES_ELEMENT(desc_el, env) \
00509       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00510         get_types_element (desc_el, env))
00511 
00512 #define WODEN_WSDL10_DESC_ELEMENT_ADD_MSG_ELEMENT(desc_el, env, msg_el) \
00513       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00514         add_msg_element (desc_el, env, msg_el))
00515 
00516 #define WODEN_WSDL10_DESC_ELEMENT_ADD_INTERFACE_ELEMENT(desc_el, env, interface_el) \
00517       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00518         add_interface_element (desc_el, env, interface_el))
00519 
00520 #define WODEN_WSDL10_DESC_ELEMENT_GET_MSG_ELEMENTS(desc_el, env) \
00521       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00522         get_msg_elements (desc_el, env))
00523 
00524 #define WODEN_WSDL10_DESC_ELEMENT_GET_INTERFACE_ELEMENTS(desc_el, env) \
00525       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00526         get_interface_elements (desc_el, env))
00527 
00528 #define WODEN_WSDL10_DESC_ELEMENT_ADD_BINDING_ELEMENT(desc_el, env, binding_el) \
00529       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00530         add_binding_element (desc_el, env, binding_el))
00531 
00532 #define WODEN_WSDL10_DESC_ELEMENT_GET_BINDING_ELEMENTS(desc_el, env) \
00533       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00534         get_binding_elements (desc_el, env))
00535 
00536 #define WODEN_WSDL10_DESC_ELEMENT_ADD_SVC_ELEMENT(desc_el, env, svc_el) \
00537       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00538         add_svc_element (desc_el, env, svc_el))
00539 
00540 #define WODEN_WSDL10_DESC_ELEMENT_GET_SVC_ELEMENTS(desc_el, env) \
00541       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00542         get_svc_elements (desc_el, env))
00543 
00544 #define WODEN_WSDL10_DESC_ELEMENT_SET_EXT_REGISTRY(desc_el, env, ext_reg) \
00545       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00546         set_ext_registry (desc_el, env, ext_reg))
00547 
00548 #define WODEN_WSDL10_DESC_ELEMENT_GET_EXT_REGISTRY(desc_el, env) \
00549       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00550         get_ext_registry (desc_el, env))
00551 
00552 #define WODEN_WSDL10_DESC_ELEMENT_TO_COMPONENT(desc_el, env) \
00553       (((woden_wsdl10_desc_element_t *) desc_el)->ops->\
00554         to_component (desc_el, env))
00555 
00556 
00558 #ifdef __cplusplus
00559 }
00560 #endif
00561 #endif /* WODEN_WSDL10_DESC_ELEMENT_H */
00562 

Generated on Tue Oct 3 18:21:11 2006 for Axis2/C by  doxygen 1.4.7