00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
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