Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages | Examples

BasicNode.hpp

Go to the documentation of this file.
00001 /* 00002 * Copyright 2003-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 00024 #if !defined(_BASICNODE_H____OF_AXIS_INCLUDED_) 00025 #define _BASICNODE_H____OF_AXIS_INCLUDED_ 00026 00027 #include "GDefine.hpp" 00028 #include <axis/IAttribute.hpp> 00029 #include <list> 00030 00031 AXIS_CPP_NAMESPACE_START 00032 00033 class SoapSerializer; 00034 00035 typedef enum { ELEMENT_NODE=1, CHARACTER_NODE} NODE_TYPE; 00036 00037 /* 00038 * @class BasicNode 00039 * @brief interface for the BasicNode class. 00040 * 00041 * @author Roshan Weerasuriya (roshan@opensource.lk, roshanw@jkcsworld.com) 00042 * @author Samisa Abeysinghe (sabeysinghe@virtusa.com) 00043 * 00044 */ 00045 00046 /* 00047 * Revision 1.1 2004/05/25 samisa 00048 * Added constructors, copy constructure and pure virtual clone for copy constructing derived classes 00049 */ 00050 00051 /* 00052 * Revision 1.2 2004/06/13 roshan 00053 * Added doxygen comments to help autobuild API docs 00054 */ 00055 00056 /* 00057 * Revision 1.3 2004/07/28 roshan 00058 * Added the method getLocalName() 00059 */ 00060 00061 class BasicNode 00062 { 00063 public: 00064 00076 virtual IAttribute* getAttribute(AxisChar* pachPrefix, AxisChar* pachURI, AxisChar* pachLocalname) = 0; 00077 00082 virtual IAttribute* getFirstAttribute() = 0; 00083 00088 virtual IAttribute* getLastAttribute() = 0; 00089 00094 virtual IAttribute* getNextAttribute() = 0; 00095 00100 virtual IAttribute* getCurrentAttribute() = 0; 00101 00102 00113 virtual IAttribute* createAttribute(const AxisChar* localname, 00114 const AxisChar* prefix, const AxisChar* uri, 00115 const AxisChar* value) =0; 00116 00126 virtual IAttribute* createAttribute(const AxisChar* localname, 00127 const AxisChar* prefix, const AxisChar* value)=0 ; 00128 00137 virtual IAttribute* createAttribute(const AxisChar* localname, 00138 const AxisChar* value)=0 ; 00139 00146 virtual const AxisChar* getLocalName() = 0; 00147 00155 virtual int getNoOfChildren() = 0; 00156 00163 virtual BasicNode* getFirstChild() = 0; 00164 00171 virtual BasicNode* getLastChild() = 0; 00172 00180 virtual BasicNode* getChild(int iChildPosition) = 0; 00181 00189 virtual int addChild(BasicNode* pBasicNode) =0; 00190 00196 virtual NODE_TYPE getNodeType() const =0; 00197 00204 virtual const AxisChar* getValue() const =0; 00205 00213 virtual int setValue(const AxisChar* pachValue)=0; 00214 00222 virtual int setURI(const AxisChar* sURI) =0; 00223 00231 virtual int setLocalName(const AxisChar* sLocalName) =0; 00232 00240 virtual int setPrefix(const AxisChar* sPrefix) =0; 00241 00246 virtual const AxisChar* getURI() = 0; 00247 00252 virtual const AxisChar* getPrefix() = 0; 00253 00254 virtual int serialize(SoapSerializer& pSZ) =0; 00255 virtual int serialize(SoapSerializer& pSZ, 00256 std::list<AxisChar*>& lstTmpNameSpaceStack) =0; 00257 BasicNode(); 00258 BasicNode(const AxisChar* pachValue, NODE_TYPE eNodeType = ELEMENT_NODE); 00259 BasicNode(const BasicNode& rCopy); 00260 virtual BasicNode* clone() = 0; 00261 virtual ~BasicNode(); 00262 00263 protected: 00268 NODE_TYPE m_iNodeType; 00269 00274 AxisChar* m_pachValue; 00275 00276 }; 00277 00278 AXIS_CPP_NAMESPACE_END 00279 00280 #endif 00281

Generated on Tue Feb 8 14:34:17 2005 for AxisC++ by doxygen 1.3.8