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