00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef skTREENODEOBJECT_H
00024 #define skTREENODEOBJECT_H
00025
00026 #include "skExecutable.h"
00027 class CLASSEXPORT skTreeNode;
00028 class CLASSEXPORT skMethodTable;
00029
00030 #define TREENODE_TYPE 1
00031
00042 class CLASSEXPORT skTreeNodeObject : public skExecutable
00043 {
00044 public:
00048 skTreeNodeObject();
00055 skTreeNodeObject(const skString& location,skTreeNode * node,bool created);
00059 ~skTreeNodeObject();
00063 int executableType() const;
00067 int intValue() const;
00071 float floatValue() const;
00075 bool boolValue() const;
00079 Char charValue() const;
00083 skString strValue() const;
00091 bool setValue(const skString& name,const skString& attribute,const skRValue& value);
00099 bool setValueAt(const skRValue& array_index,const skString& attribute,const skRValue& value);
00104 bool getValue(const skString& name,const skString& attribute,skRValue& v);
00109 bool getValueAt(const skRValue& array_index,const skString& attribute,skRValue& value);
00118 bool method(const skString& name,skRValueArray& args,skRValue& ret,skExecutableContext& ctxt);
00122 skTreeNode * getNode();
00126 void setNode(skTreeNode * node);
00130
00134 skString getLocation() const;
00139 skExecutableIterator * createIterator(const skString& qualifier);
00143 skExecutableIterator * createIterator();
00144 protected:
00148 skString m_Location;
00149 private:
00153 skTreeNode * m_Node;
00157 bool m_Created;
00161 skMethodTable * m_MethodCache;
00165 skTreeNodeObject(const skTreeNodeObject&);
00169 skTreeNodeObject& operator=(const skTreeNodeObject&);
00170 };
00171 #endif