| /* |
| * Copyright 2004,2005 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef AXIS2_WSDL_DESC_H |
| #define AXIS2_WSDL_DESC_H |
| |
| /** |
| * @file axis2_wsdl_desc.h |
| * @brief Axis2 Wsdl interface interface |
| */ |
| |
| #include <axis2_const.h> |
| #include <axis2_error.h> |
| #include <axis2_defines.h> |
| #include <axis2_env.h> |
| #include <axis2_allocator.h> |
| #include <axis2_hash.h> |
| #include <axis2_array_list.h> |
| #include <axis2_qname.h> |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| struct axis2_wsdl_op; |
| struct axis2_wsdl_component; |
| struct axis2_wsdl_include; |
| struct axis2_wsdl_import; |
| struct axis2_wsdl_types; |
| struct axis2_wsdl_msg_ref; |
| struct axis2_wsdl_fault_ref; |
| struct axis2_wsdl_feature; |
| struct axis2_wsdl_property; |
| struct axis2_wsdl_binding; |
| struct axis2_wsdl_binding_fault; |
| struct axis2_wsdl_binding_op; |
| struct axis2_wsdl_extensible_attribute; |
| struct axis2_wsdl_interface; |
| |
| typedef struct axis2_wsdl_desc axis2_wsdl_desc_t; |
| typedef struct axis2_wsdl_desc_ops axis2_wsdl_desc_ops_t; |
| |
| /** @defgroup axis2_wsdl_desc Wsdl Description |
| * @ingroup axis2_wsdl |
| * @{ |
| */ |
| |
| |
| /** |
| * @brief Wsdl Description ops struct |
| * Encapsulator struct for ops of axis2_wsdl_desc |
| */ |
| AXIS2_DECLARE_DATA struct axis2_wsdl_desc_ops |
| { |
| /** De-allocate memory |
| * @return status code |
| */ |
| axis2_status_t (AXIS2_CALL * |
| free)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Returns a Map of <code>wsdl_bindings</code> Objects keyed by the |
| * <code>axis2_qname_t</code> of the Binding. |
| * |
| * @return |
| */ |
| axis2_hash_t *(AXIS2_CALL * |
| get_bindings)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Sets the whole new set of Bindings to the axis2_wsd_desc. |
| * |
| * @param bindings |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_bindings)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_hash_t *bindings); |
| |
| /** |
| * The axis2_wsdl_binding Will be added to the map keyed with its own qname. |
| * If the axis2_wsdl_binding is null it will not be added. |
| * If the axis2_wsdl_binding is not null and Binding name is null then |
| * error is set. |
| * |
| * @param binding <code>axis2_wsdl_binding</code> Object |
| */ |
| axis2_status_t (AXIS2_CALL * |
| add_binding)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| struct axis2_wsdl_binding *binding); |
| |
| /** |
| * Retrives the <code>axis2_wsdl_binding_t</code> by its qname. Wil return NULL |
| * if <code>axis2_wsdl_binding_t</code> is not found. |
| * |
| * @param qname The qname of the Binding. |
| * @return |
| */ |
| struct axis2_wsdl_binding *(AXIS2_CALL * |
| get_binding)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_qname_t *qname); |
| |
| /** |
| * The Interface component will be added to the map keyed with its own name. |
| * If the Interface is NULL it will not be added. |
| * If the interface name is NULL an Error will be set and return. |
| * |
| * @param interface |
| */ |
| axis2_status_t (AXIS2_CALL * |
| add_interface)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| struct axis2_wsdl_interface *interface); |
| |
| /** |
| * The Interface will be returned if it exsists, |
| * otherwise null will be returned. |
| * |
| * @param qname qname of the Interface. |
| * @return The Interface with the relavent qname |
| */ |
| struct axis2_wsdl_interface *(AXIS2_CALL * |
| get_interface)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_qname_t *qname); |
| |
| /** |
| * Method get_interfaces |
| * |
| * @return |
| */ |
| axis2_hash_t *(AXIS2_CALL * |
| get_interfaces)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Method set_interfaces |
| * |
| * @param interfaces |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_interfaces)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_hash_t *interfaces); |
| |
| /** |
| * Method get_svcs |
| * |
| * @return map of axis2_wsdl_svc's |
| */ |
| axis2_hash_t *(AXIS2_CALL * |
| get_svcs)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Method set_svcs |
| * |
| * @param svcs |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_svcs)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_hash_t *svcs); |
| |
| /** |
| * Will return the <code>axis2_wsdl_svc </code> if found otherwise return NULL. |
| * |
| * @param qname <code>qname</code> of the svc |
| * @return The svc with the relevant qname |
| */ |
| struct axis2_wsdl_svc *(AXIS2_CALL * |
| get_svc)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_qname_t *qname); |
| |
| /** |
| * Will add the <code>axis2_wsdl_svc_t</code> to the map. |
| * If svc is NULL it will not be added. |
| * If the <code>axis2_wsdl_svc_t</code> name is NULL an error will be set. |
| * |
| * @param svc |
| */ |
| axis2_status_t (AXIS2_CALL * |
| add_svc)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| struct axis2_wsdl_svc *svc); |
| |
| /** |
| * Method get_target_namespace |
| * |
| * @return |
| */ |
| axis2_char_t *(AXIS2_CALL * |
| get_target_namespace)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Method set_target_namespace |
| * |
| * @param target_namespace |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_target_namespace)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_char_t *target_namespace); |
| |
| /** |
| * Method get_types |
| * |
| * @return |
| */ |
| struct axis2_wsdl_types *(AXIS2_CALL * |
| get_types)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Method axis2_wsdl_desc_set_types |
| * |
| * @param types |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_types)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| struct axis2_wsdl_types *types); |
| |
| /** |
| * Gets the name attribute of the WSDL 1.1 Definitions Element |
| * |
| * @return |
| */ |
| axis2_qname_t *(AXIS2_CALL * |
| get_wsdl1_def_name)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Sets the name attribute of the WSDL 1.1 Definitions Element |
| * |
| * @param wsdl1_def_name |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_wsdl1_def_name)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_qname_t *wsdl1_def_name); |
| |
| /** |
| * Will return the Namespace URI as a String if there exists an |
| * Namespace URI associated with the given prefix, in the Definition |
| * Component, Will return NULL if not found. |
| * |
| * @param prefix Prefix defined in the Definitions elemet in the WSDL file |
| * @return The Namespace URI for the prefix. |
| */ |
| axis2_char_t *(AXIS2_CALL * |
| get_namespace)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_char_t *prefix); |
| |
| /** |
| * Will return all the Namespaces associated with the Definition |
| * Component and will be keyed by the Napespace Prefix. |
| * |
| * @return |
| */ |
| axis2_hash_t *(AXIS2_CALL * |
| get_namespaces)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Sets the Namespaces associated with the Difinition Component |
| * and they should be keyed by its Namespace Prefix. |
| * |
| * @param namespaces |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_namespaces)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_hash_t *namespaces); |
| |
| /** |
| * Returns the WSDL Imports in an <code>axis2_array_list_t</code> |
| * |
| * @return |
| */ |
| axis2_array_list_t *(AXIS2_CALL * |
| get_imports)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Sets the imports as an <code>axis2_array_list_t</code> |
| * |
| * @param imports |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_imports)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_array_list_t *imports); |
| |
| /** |
| * Adds an import to the list. |
| * |
| * @param wsdl_import |
| */ |
| axis2_status_t (AXIS2_CALL * |
| add_import)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| struct axis2_wsdl_import *wsdl_import); |
| |
| /** |
| * Returns the Includes in an <code>axis2_array_list_t</code> |
| * |
| * @return |
| */ |
| axis2_array_list_t *(AXIS2_CALL * |
| get_includes)(axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| /** |
| * Sets the includes as an <code>axis2_array_list_t</code> |
| * |
| * @param includes |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_includes) (axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| axis2_array_list_t *includes); |
| |
| /** |
| * Adds an wsdl include to the list. |
| * |
| * @param wsdl_include |
| */ |
| axis2_status_t (AXIS2_CALL * |
| add_include) (axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env, |
| struct axis2_wsdl_include *wsdl_include); |
| |
| struct axis2_wsdl_binding *(AXIS2_CALL * |
| get_first_binding) (axis2_wsdl_desc_t *wsdl_desc, |
| const axis2_env_t *env); |
| |
| }; |
| |
| /** |
| * @brief Wsdl container struct |
| * Property for params |
| */ |
| AXIS2_DECLARE_DATA struct axis2_wsdl_desc |
| { |
| axis2_wsdl_desc_ops_t *ops; |
| struct axis2_wsdl_component *component; |
| }; |
| |
| /** |
| * Creates wsdl property struct |
| * @return pointer to newly created wsdl property |
| */ |
| AXIS2_EXTERN axis2_wsdl_desc_t * AXIS2_CALL |
| axis2_wsdl_desc_create (const axis2_env_t *env); |
| |
| /*************************** Function macros **********************************/ |
| |
| #define AXIS2_WSDL_DESC_FREE(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->free (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_GET_BINDINGS(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_bindings (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_BINDINGS(wsdl_desc, env, bindings) \ |
| ((wsdl_desc)->ops->set_bindings (wsdl_desc, env, bindings)) |
| |
| #define AXIS2_WSDL_DESC_ADD_BINDING(wsdl_desc, env, binding) \ |
| ((wsdl_desc)->ops->add_binding (wsdl_desc, env, binding)) |
| |
| #define AXIS2_WSDL_DESC_GET_BINDING(wsdl_desc, env, qname) \ |
| ((wsdl_desc)->ops->get_binding (wsdl_desc, env, qname)) |
| |
| #define AXIS2_WSDL_DESC_ADD_INTERFACE(wsdl_desc, env, interface) \ |
| ((wsdl_desc)->ops->add_interface (wsdl_desc, env, interface)) |
| |
| #define AXIS2_WSDL_DESC_GET_INTERFACE(wsdl_desc, env, qname) \ |
| ((wsdl_desc)->ops->get_interface (wsdl_desc, env, qname)) |
| |
| #define AXIS2_WSDL_DESC_GET_INTERFACES(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_interfaces (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_INTERFACES(wsdl_desc, env, interfaces) \ |
| ((wsdl_desc)->ops->set_interfaces (wsdl_desc, env, interfaces)) |
| |
| #define AXIS2_WSDL_DESC_GET_SVCS(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_svcs (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_SVCS(wsdl_desc, env, svcs) \ |
| ((wsdl_desc)->ops->set_svcs (wsdl_desc, env, svcs)) |
| |
| #define AXIS2_WSDL_DESC_GET_SVC(wsdl_desc, env, qname) \ |
| ((wsdl_desc)->ops->get_svc (wsdl_desc, env, qname)) |
| |
| #define AXIS2_WSDL_DESC_ADD_SVC(wsdl_desc, env, svc) \ |
| ((wsdl_desc)->ops->add_svc (wsdl_desc, env, svc)) |
| |
| #define AXIS2_WSDL_DESC_GET_TARGET_NAMESPACE(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_target_namespace (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_TARGET_NAMESPACE(wsdl_desc, env, target_namespace) \ |
| ((wsdl_desc)->ops->set_target_namespace (wsdl_desc, env, target_namespace)) |
| |
| #define AXIS2_WSDL_DESC_GET_TYPES(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_types (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_TYPES(wsdl_desc, env, types) \ |
| ((wsdl_desc)->ops->set_types (wsdl_desc, env, types)) |
| |
| #define AXIS2_WSDL_DESC_GET_WSDL1_DEF_NAME(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_wsdl1_def_name (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_WSDL1_DEF_NAME(wsdl_desc, env, wsdl1_def_qname) \ |
| ((wsdl_desc)->ops->set_wsdl1_def_name (wsdl_desc, env, wsdl1_def_qname)) |
| |
| #define AXIS2_WSDL_DESC_GET_NAMESPACE(wsdl_desc, env, prefix) \ |
| ((wsdl_desc)->ops->get_namespace (wsdl_desc, env, prefix)) |
| |
| #define AXIS2_WSDL_DESC_GET_NAMESPACES(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_namespaces (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_NAMESPACES(wsdl_desc, env, namespaces) \ |
| ((wsdl_desc)->ops->set_namespace (wsdl_desc, env, namespaces)) |
| |
| #define AXIS2_WSDL_DESC_GET_IMPORTS(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_imports (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_IMPORTS(wsdl_desc, env, imports) \ |
| ((wsdl_desc)->ops->set_imports (wsdl_desc, env, imports)) |
| |
| #define AXIS2_WSDL_DESC_ADD_IMPORT(wsdl_desc, env, wsdl_import) \ |
| ((wsdl_desc)->ops->add_import (wsdl_desc, env, wsdl_import)) |
| |
| #define AXIS2_WSDL_DESC_GET_INCLUDES(wsdl_desc, env) \ |
| ((wsdl_desc)->ops->get_includes (wsdl_desc, env)) |
| |
| #define AXIS2_WSDL_DESC_SET_INCLUDES(wsdl_desc, env, includes) \ |
| ((wsdl_desc)->ops->set_includes (wsdl_desc, env, includes)) |
| |
| #define AXIS2_WSDL_DESC_ADD_INCLUDE(wsdl_desc, env, wsdl_include) \ |
| ((wsdl_desc)->ops->add_include (wsdl_desc, env, wsdl_include)) |
| |
| /*************************** End of function macros ***************************/ |
| |
| /** @} */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif /* AXIS2_WSDL_DESC_H */ |