Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

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_bus_pdk/xml_node.h>
00012 
00013 #include <it_wsdl/wsdl_node.h>
00014 #include <it_wsdl/wsdl_error_handler.h>
00015 
00016 #include <it_bus/complex_type_reader.h>
00017 #include <it_bus/complex_type_writer.h>
00018 
00019 
00020 namespace IT_WSDL
00021 {
00022     class WSDLExtensionFactory;
00023     class WSDLExtensionFactoryMap;
00024 
00034     class IT_WSDL_API WSDLExtensionElement : 
00035         public WSDLNode, 
00036         public virtual IT_Bus::AnyType
00037     {
00038       public:
00039         virtual
00040         ~WSDLExtensionElement();
00041 
00047         virtual NodeType
00048         get_node_type();
00049 
00050         virtual
00051         WSDLExtensionFactory &
00052         get_extension_factory() = 0;
00053 
00054         virtual bool
00055         parse(
00056             const IT_Bus::XMLIterator & port_type_iter,
00057             const IT_Bus::XMLNode& parent_node,
00058             WSDLErrorHandler & error_handler
00059         ) = 0;
00060 
00061         virtual void
00062         write(
00063             IT_Bus::XMLOutputStream & /*stream*/
00064         ) const throw((IT_Bus::IOException))
00065         {
00066             // complete
00067         }
00068 
00069         virtual WSDLExtensionElement*
00070         clone() const
00071         {
00072             return 0;
00073         }
00074 
00075         virtual WSDLExtensionElement*
00076         clone_unique(const IT_Bus::QName & /*name*/) const
00077         {
00078             return clone();
00079         }
00080 
00081         virtual bool
00082         export_to_client() const;
00083 
00089         virtual const IT_Bus::QName &
00090         get_type() const
00091         {
00092             return IT_Bus::QName::EMPTY_QNAME;
00093         }
00094 
00095         virtual void
00096         read(
00097             const IT_Bus::QName& /*name*/,
00098             IT_Bus::ComplexTypeReader& /*reader*/
00099         ) throw((IT_Bus::DeserializationException))
00100         {
00101             // complete
00102         }
00103 
00104         virtual void
00105         write(
00106             const IT_Bus::QName& /*name*/,
00107             IT_Bus::ComplexTypeWriter& /*writer*/
00108         ) const throw((IT_Bus::SerializationException))
00109         {
00110             // complete
00111         }
00112 
00113         virtual 
00114         IT_Bus::AnyType&
00115         copy(
00116             const IT_Bus::AnyType & /*rhs*/
00117         )
00118         {
00119             return *this;
00120         }
00121 
00122 
00123       protected:
00124         WSDLExtensionElement();
00125 
00126       private:
00127 
00128         WSDLExtensionElement&
00129         operator = (
00130             const WSDLExtensionElement& rhs
00131         );
00132 
00133         WSDLExtensionElement(
00134             const WSDLExtensionElement& rhs
00135         );
00136     };
00137 }
00138 
00139 #endif  

Generated on Wed Mar 22 12:23:19 2006 for Artix by  doxygen 1.3.9.1