00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _ITEM_HPP
00023 #define _ITEM_HPP
00024
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xqilla/framework/ReferenceCounted.hpp>
00027 #include <xercesc/util/XercesDefs.hpp>
00028
00029
00030 class XPath2MemoryManager;
00031 class DynamicContext;
00032
00033 class XQILLA_API Item : public ReferenceCounted
00034 {
00035 public:
00036 typedef RefCountPointer<const Item> Ptr;
00037
00039 static const XMLCh gXQilla[];
00040
00041 virtual bool isNode() const = 0;
00042
00043 virtual bool isAtomicValue() const = 0;
00044
00045 virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00046
00047 virtual const XMLCh* getTypeURI() const = 0;
00048
00049 virtual const XMLCh* getTypeName() const = 0;
00050
00052 virtual void *getInterface(const XMLCh *name) const = 0;
00053
00054 protected:
00055 Item() {}
00056
00057 private:
00058
00059 Item (const Item & other);
00060
00061 Item & operator=(const Item & item) ;
00062 };
00063
00064 #endif // _ITEM_HPP
00065