00001 00002 00003 00004 00005 00006
00007
00008
00009 #ifndef skTREENODEOBJECT_H
00010 #define skTREENODEOBJECT_H
00011
00012 #include "skExecutable.h"
00013 class skTreeNode;
00014 class skMethodTable;
00015
00016 #define TREENODE_TYPE 1
00017
00028 class skTreeNodeObject : public skExecutable
00029 {
00030 public:
00034 skTreeNodeObject();
00041 skTreeNodeObject(const skString& location,skTreeNode * node,bool created);
00045 ~skTreeNodeObject();
00049 int executableType() const;
00053 int intValue() const;
00057 float floatValue() const;
00061 bool boolValue() const;
00065 char charValue() const;
00069 skString strValue() const;
00077 bool setValue(const skString& name,const skString& attribute,const skRValue& value);
00085 bool setValueAt(const skRValue& array_index,const skString& attribute,const skRValue& value);
00090 bool getValue(const skString& name,const skString& attribute,skRValue& v);
00095 bool getValueAt(const skRValue& array_index,const skString& attribute,skRValue& value);
00103 bool method(const skString& name,skRValueArray& args,skRValue& ret);
00107 skTreeNode * getNode();
00111 void setNode(skTreeNode * node);
00115 00119 skString getLocation() const;
00124 skExecutableIterator * createIterator(const skString& qualifier);
00128 skExecutableIterator * createIterator();
00129 protected:
00133 skString m_Location;
00134 private:
00138 skTreeNode * m_Node;
00142 bool m_Created;
00146 skMethodTable * m_MethodCache;
00150 skTreeNodeObject(const skTreeNodeObject&);
00154 skTreeNodeObject& operator=(const skTreeNodeObject&);
00155 };
00156 #endif