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;
00091 virtual bool setValue(const skString& name,const skString& attribute,const skRValue& value);
00099 virtual bool setValueAt(const skRValue& array_index,const skString& attribute,const skRValue& value);
00104 virtual bool getValue(const skString& name,const skString& attribute,skRValue& v);
00109 virtual bool getValueAt(const skRValue& array_index,const skString& attribute,skRValue& value);
00118 virtual 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();
00147 virtual skString getSource(const skString& location);
00152 virtual void getInstanceVariables(skRValueTable& table);
00153 protected:
00157 skString m_Location;
00158 private:
00162 skTreeNode * m_Node;
00166 bool m_Created;
00170 skMethodTable * m_MethodCache;
00174 skTreeNodeObject(const skTreeNodeObject&);
00178 skTreeNodeObject& operator=(const skTreeNodeObject&);
00179 };
00180 #endif