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 virtual int executableType() const;
00067 virtual int intValue() const;
00071 virtual float floatValue() const;
00075 virtual bool boolValue() const;
00079 virtual Char charValue() const;
00083 virtual skString strValue() const;
00092 virtual bool setValue(const skString& name,const skString& attribute,const skRValue& value);
00101 virtual bool setValueAt(const skRValue& array_index,const skString& attribute,const skRValue& value);
00107 virtual bool getValue(const skString& name,const skString& attribute,skRValue& v);
00113 virtual bool getValueAt(const skRValue& array_index,const skString& attribute,skRValue& value);
00122 virtual bool method(const skString& name,skRValueArray& args,skRValue& ret,skExecutableContext& ctxt);
00126 skTreeNode * getNode();
00130 void setNode(skTreeNode * node);
00134
00138 skString getLocation() const;
00143 skExecutableIterator * createIterator(const skString& qualifier);
00147 skExecutableIterator * createIterator();
00151 virtual skString getSource(const skString& location);
00156 virtual void getInstanceVariables(skRValueTable& table);
00160 virtual void setAddIfNotPresent(bool enable);
00164 virtual bool getAddIfNotPresent();
00165 protected:
00166 friend class skTreeNodeObjectEnumerator;
00172 virtual skTreeNodeObject * createTreeNodeObject(const skString& location,skTreeNode * node,bool created);
00176 skString m_Location;
00177 private:
00182 bool m_AddIfNotPresent;
00186 skTreeNode * m_Node;
00190 bool m_Created;
00194 skMethodTable * m_MethodCache;
00198 skTreeNodeObject(const skTreeNodeObject&);
00202 skTreeNodeObject& operator=(const skTreeNodeObject&);
00203 };
00204 #endif