00001 #ifndef _IT_WSDL_WSDL_EXTENSION_FACTORY_H_
00002 #define _IT_WSDL_WSDL_EXTENSION_FACTORY_H_
00003
00004
00005
00006
00007 #include <it_wsdl/api_defines.h>
00008 #include <it_wsdl/wsdl_extension_element.h>
00009 #include <it_bus/type_factory.h>
00010
00011 namespace IT_WSDL
00012 {
00013 class IT_WSDL_API WSDLExtensionFactory : public IT_Bus::TypeFactory
00014 {
00015 public:
00016 virtual WSDLExtensionElement*
00017 create_extension_element(
00018 WSDLExtensibleNode& parent,
00019 const IT_Bus::QName& extension_element
00020 ) const = 0;
00021
00022 virtual IT_Bus::AnyType*
00023 create_type(
00024 const IT_Bus::QName& extension_element
00025 ) const = 0;
00026
00027 virtual void
00028 destroy_type(
00029 IT_Bus::AnyType* element
00030 ) const = 0;
00031
00032 virtual IT_Bus::AnyType*
00033 create_type_for_element(
00034 const IT_Bus::QName& element_name
00035 ) const;
00036
00037 virtual IT_Bus::UserFaultException*
00038 create_exception(
00039 const IT_Bus::QName& type_name
00040 ) const;
00041
00042 virtual void
00043 destroy_exception(
00044 IT_Bus::UserFaultException* ex_type
00045 ) const;
00046
00047 protected:
00048 WSDLExtensionFactory() {}
00049
00050 private:
00051
00052 WSDLExtensionFactory(const WSDLExtensionFactory&);
00053 void operator=(const WSDLExtensionFactory&);
00054 };
00055 }
00056
00057 #endif