woden_wsdl10_desc_element.h

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

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1