it_wsdl/wsdl_extension_element.h

00001 #ifndef _IT_WSDL_WSDL_EXTENSION_ELEMENT_H_
00002 #define _IT_WSDL_WSDL_EXTENSION_ELEMENT_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_wsdl/api_defines.h>
00008 
00009 #include <it_bus/types.h>
00010 #include <it_bus/any_type.h>
00011 #include <it_wsdl/wsdl_node.h>
00012 #include <it_wsdl/wsdl_error_handler.h>
00013 
00014 #ifndef IT_MINIMISE_INCLUDES
00015 #include <it_bus_pdk/xml_node.h>
00016 #include <it_bus/complex_type_reader.h>
00017 #include <it_bus/complex_type_writer.h>
00018 #endif
00019 
00020 namespace IT_Bus
00021 {
00022     class XMLIterator;
00023     class XMLNode;
00024     class QName;
00025     class IOException;
00026 }
00027 
00028 namespace IT_WSDL
00029 {
00030     class WSDLExtensionFactory;
00031     class WSDLExtensionFactoryMap;
00032     class WSDLErrorHandler;
00033 
00043     class IT_WSDL_API WSDLExtensionElement : public WSDLNode, 
00044                                                  public virtual IT_Bus::AnyType
00045     {
00046       public:
00047         virtual
00048         ~WSDLExtensionElement();
00049 
00055         virtual NodeType
00056         get_node_type();
00057 
00058         virtual
00059         WSDLExtensionFactory &
00060         get_extension_factory() = 0;
00061 
00062         virtual bool
00063         parse(
00064             const IT_Bus::XMLIterator & port_type_iter,
00065             const IT_Bus::XMLNode& parent_node,
00066         WSDLErrorHandler & error_handler
00067         ) = 0;
00068 
00069         virtual void
00070         write(
00071             IT_Bus::XMLOutputStream & /*stream*/
00072         ) const IT_THROW_DECL((IT_Bus::IOException))
00073         {
00074             // complete
00075         }
00076 
00077         virtual WSDLExtensionElement*
00078         clone() const
00079         {
00080             return 0;
00081         }
00082 
00083         virtual WSDLExtensionElement*
00084         clone_unique(const IT_Bus::QName & /*name*/) const
00085         {
00086             return clone();
00087         }
00088 
00089         virtual bool
00090         export_to_client() const;
00091 
00097         virtual const IT_Bus::QName &
00098         get_type() const
00099         {
00100             return IT_Bus::QName::EMPTY_QNAME;
00101         }
00102 
00103         virtual void
00104         read(
00105             const IT_Bus::QName& /*name*/,
00106             IT_Bus::ComplexTypeReader& /*reader*/
00107         ) IT_THROW_DECL((IT_Bus::DeserializationException))
00108         {
00109             // complete
00110         }
00111 
00112         virtual void
00113         write(
00114             const IT_Bus::QName& /*name*/,
00115             IT_Bus::ComplexTypeWriter& /*writer*/
00116         ) const IT_THROW_DECL((IT_Bus::SerializationException))
00117         {
00118             // complete
00119         }
00120 
00121         virtual 
00122         IT_Bus::AnyType&
00123         copy(
00124             const IT_Bus::AnyType & /*rhs*/
00125         )
00126         {
00127             return *this;
00128         }
00129 
00130 
00131       protected:
00132         WSDLExtensionElement();
00133 
00134       private:
00135 
00136         WSDLExtensionElement&
00137         operator = (
00138             const WSDLExtensionElement& rhs
00139         );
00140 
00141         WSDLExtensionElement(
00142             const WSDLExtensionElement& rhs
00143         );
00144     };
00145 }
00146 
00147 #endif  

Generated on Thu Sep 7 11:39:09 2006 for Artix by  doxygen 1.4.7