00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00025 #if !defined(_BASICNODE_H____OF_AXIS_INCLUDED_)
00026 #define _BASICNODE_H____OF_AXIS_INCLUDED_
00027
00028 #include "GDefine.hpp"
00029 #include <axis/IAttribute.hpp>
00030 #include <list>
00031
00032 AXIS_CPP_NAMESPACE_START
00033
00034 class SoapSerializer;
00035
00036 typedef enum { ELEMENT_NODE=1, CHARACTER_NODE} NODE_TYPE;
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 class BasicNode
00063 {
00064 public:
00065
00077 virtual IAttribute* getAttribute(AxisChar* pachPrefix, AxisChar* pachURI, AxisChar* pachLocalname) = 0;
00078
00083 virtual IAttribute* getFirstAttribute() = 0;
00084
00089 virtual IAttribute* getLastAttribute() = 0;
00090
00095 virtual IAttribute* getNextAttribute() = 0;
00096
00101 virtual IAttribute* getCurrentAttribute() = 0;
00102
00103
00114 virtual IAttribute* createAttribute(const AxisChar* localname,
00115 const AxisChar* prefix, const AxisChar* uri,
00116 const AxisChar* value) =0;
00117
00127 virtual IAttribute* createAttribute(const AxisChar* localname,
00128 const AxisChar* prefix, const AxisChar* value)=0 ;
00129
00138 virtual IAttribute* createAttribute(const AxisChar* localname,
00139 const AxisChar* value)=0 ;
00140
00147 virtual const AxisChar* getLocalName() = 0;
00148
00156 virtual int getNoOfChildren() = 0;
00157
00164 virtual BasicNode* getFirstChild() = 0;
00165
00172 virtual BasicNode* getLastChild() = 0;
00173
00181 virtual BasicNode* getChild(int iChildPosition) = 0;
00182
00190 virtual int addChild(BasicNode* pBasicNode) =0;
00191
00197 virtual NODE_TYPE getNodeType() const =0;
00198
00205 virtual const AxisChar* getValue() const =0;
00206
00214 virtual int setValue(const AxisChar* pachValue)=0;
00215
00223 virtual int setURI(const AxisChar* sURI) =0;
00224
00232 virtual int setLocalName(const AxisChar* sLocalName) =0;
00233
00241 virtual int setPrefix(const AxisChar* sPrefix) =0;
00242
00247 virtual const AxisChar* getURI() = 0;
00248
00253 virtual const AxisChar* getPrefix() = 0;
00254
00255 virtual int serialize(SoapSerializer& pSZ) =0;
00256 virtual int serialize(SoapSerializer& pSZ,
00257 std::list<AxisChar*>& lstTmpNameSpaceStack) =0;
00258 BasicNode();
00259 BasicNode(const AxisChar* pachValue, NODE_TYPE eNodeType = ELEMENT_NODE);
00260 BasicNode(const BasicNode& rCopy);
00261 virtual BasicNode* clone() = 0;
00262 virtual ~BasicNode();
00263
00264 protected:
00269 NODE_TYPE m_iNodeType;
00270
00275 AxisChar* m_pachValue;
00276
00277 };
00278
00279 AXIS_CPP_NAMESPACE_END
00280
00281 #endif
00282