VariableStore.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001-2006
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004-2006
00005  *     Progress Software Corporation. All rights reserved.
00006  * Copyright (c) 2004-2006
00007  *     Oracle. All rights reserved.
00008  *
00009  * See the file LICENSE for redistribution information.
00010  *
00011  * $Id: VariableStore.hpp,v 1.10 2006/11/01 16:37:12 jpcs Exp $
00012  */
00013 
00014 #ifndef _VARIABLESTORE_HPP
00015 #define _VARIABLESTORE_HPP
00016 
00017 #include <xqilla/framework/XQillaExport.hpp>
00018 #include <xercesc/util/XercesDefs.hpp>
00019 #include <vector>
00020 #include <xercesc/util/XMemory.hpp>
00021 
00022 class Sequence;
00023 template<class TYPE> class VarHashEntry;
00024 template<class TYPE> class Scope;
00025 class StaticContext;
00026 class XPath2MemoryManager;
00027 class LocationInfo;
00028 
00031 class XQILLA_API VariableStore : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00032 {
00033 public:
00034   typedef Scope<Sequence> MyScope;
00035   typedef VarHashEntry<Sequence> Entry;
00036 
00038   virtual ~VariableStore() {};
00039 
00041   virtual void clear() = 0;
00042 
00044   virtual void addLocalScope() = 0;
00046   virtual void addLogicalBlockScope() = 0;
00049   virtual void removeScope() = 0;
00050 
00052   virtual MyScope *getScopeState() = 0;
00054   virtual void setScopeState(MyScope *state) = 0;
00055 
00057   virtual void setGlobalVar(const XMLCh* ident, const Sequence &value,
00058                             const StaticContext* context,
00059                             const LocationInfo *location) = 0;
00060   virtual void setGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const Sequence &value,
00061                     const StaticContext* context) = 0;
00062 
00064   virtual void setVar(const XMLCh* ident, const Sequence &value,
00065                       const StaticContext* context,
00066                       const LocationInfo *location) = 0;
00067   virtual void setVar(const XMLCh* namespaceURI, const XMLCh* name, const Sequence &value,
00068               const StaticContext* context) = 0;
00069 
00072   virtual void declareVar(const XMLCh* ident, 
00073                           const Sequence &value,
00074                           const StaticContext* context,
00075                           const LocationInfo *location) = 0;
00076   virtual void declareVar(const XMLCh* namespaceURI,
00077                   const XMLCh* name,
00078                   const Sequence &value,
00079                   const StaticContext* context) = 0;
00080 
00084   virtual const std::pair<bool, Sequence> getVar(const XMLCh* ident,
00085                                                  const StaticContext* context,
00086                                                  const LocationInfo *location) const = 0;
00087   virtual const std::pair<bool, Sequence> getVar(const XMLCh* namespaceURI,
00088                                     const XMLCh* name,
00089                                     const StaticContext* context) const = 0;
00090 
00094   virtual Entry* getReferenceVar(const XMLCh* ident,
00095                                  const StaticContext* context,
00096                                  const LocationInfo *location) const = 0;
00097   virtual Entry* getReferenceVar(const XMLCh* namespaceURI,
00098                                     const XMLCh* name,
00099                                     const StaticContext* context) const = 0;
00100 
00102   virtual const std::pair<bool, Sequence> getGlobalVar(const XMLCh* ident,
00103                                                        const StaticContext* context,
00104                                                        const LocationInfo *location) const = 0;
00105   virtual const std::pair<bool, Sequence> getGlobalVar(const XMLCh* namespaceURI,
00106                                     const XMLCh* name,
00107                                     const StaticContext* context) const = 0;
00108 
00110   virtual void delVar(const XMLCh* ident, const StaticContext* context,
00111                       const LocationInfo *location) = 0;
00112   virtual void delVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticContext* context) = 0;
00113 
00115   virtual void delGlobalVar(const XMLCh* ident, const StaticContext* context,
00116                             const LocationInfo *location) = 0;
00117 
00119   virtual XMLCh* print(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) const = 0;
00120 
00122   virtual std::vector< std::pair<const XMLCh*, const XMLCh*> > getVars() const = 0;
00123 };
00124 
00125 #endif

Generated on Mon Feb 12 16:52:06 2007 for XQilla Simple API by  doxygen 1.4.6