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