00001 #ifndef _IT_BUS_PDK_ANY_TYPE_FACTORY_H_
00002 #define _IT_BUS_PDK_ANY_TYPE_FACTORY_H_
00003
00004
00005
00006
00007 #include <it_bus_pdk/unknown_type_exception.h>
00008 #include <it_bus_pdk/registry.h>
00009
00010 namespace IT_WSDL
00011 {
00012 class WSDLPart;
00013 }
00014
00015 namespace IT_XMLSCHEMA_Typenodes
00016 {
00017 class SchemaType;
00018 }
00019
00020 namespace IT_Bus
00021 {
00022 class AnyType;
00023 class UserFaultException;
00024
00030 class IT_AFC_API AnyTypeFactory : public RegistryBase
00031 {
00032 public:
00033 virtual ~AnyTypeFactory() throw(());
00034
00042 virtual AnyType*
00043 create_from_type(
00044 const QName& type_name
00045 ) const throw((UnknownTypeException)) = 0;
00046
00054 virtual AnyType*
00055 create_from_element(
00056 const QName& element_name
00057 ) const throw((UnknownTypeException)) = 0;
00058
00070 virtual UserFaultException*
00071 create_user_fault(
00072 const QName& message
00073 ) const throw((UnknownTypeException)) = 0;
00074
00078 virtual AnyType*
00079 create_from_part(
00080 const IT_WSDL::WSDLPart& part
00081 ) const throw((UnknownTypeException)) = 0;
00082
00086 virtual AnyType*
00087 create_from_model(
00088 const IT_XMLSCHEMA_Typenodes::SchemaType* schema_type
00089 ) const throw((UnknownTypeException)) = 0;
00090 };
00091 }
00092
00093
00094 #endif