SourceForge.net Logo

StaticContext.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: StaticContext.hpp,v 1.21 2007/07/10 16:28:57 jpcs Exp $
00012  */
00013 
00014 #ifndef _STATICCONTEXT_HPP
00015 #define _STATICCONTEXT_HPP
00016 
00017 #include <xqilla/framework/XQillaExport.hpp>
00018 #include <xqilla/simple-api/XQilla.hpp>
00019 #include <time.h>
00020 #include <xqilla/schema/DocumentCache.hpp>
00021 #include <xercesc/util/PlatformUtils.hpp>
00022 #include <xercesc/util/XMemory.hpp>
00023 
00024 // Copied from ASTNode.hpp
00025 typedef std::vector<ASTNode*,XQillaAllocator<ASTNode*> > VectorOfASTNodes;
00026 
00027 class DynamicContext;
00028 class XPath2MemoryManager;
00029 class FuncFactory;
00030 class DatatypeFactory;
00031 class Collation;
00032 class VariableTypeStore;
00033 class ItemFactory;
00034 class StaticType;
00035 class ModuleResolver;
00036 class MessageListener;
00037 class ExternalFunction;
00038 class XQillaConfiguration;
00039 
00040 XERCES_CPP_NAMESPACE_BEGIN
00041 class DOMDocument;
00042 class DOMXPathNSResolver;
00043 class XMLEntityResolver;
00044 XERCES_CPP_NAMESPACE_END
00045 
00047 class XQILLA_API StaticContext : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00048 {
00049 public:
00050   typedef enum {
00051       ORDERING_ORDERED,
00052       ORDERING_UNORDERED
00053   } NodeSetOrdering;
00054 
00055   typedef enum {
00056     CONSTRUCTION_MODE_PRESERVE,
00057     CONSTRUCTION_MODE_STRIP
00058   } ConstructionMode;
00059 
00060   typedef enum {
00061     FLWOR_ORDER_EMPTY_GREATEST,
00062     FLWOR_ORDER_EMPTY_LEAST
00063   } FLWOROrderingMode;
00064 
00065   virtual ~StaticContext() {};
00066 
00067   virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00068                                               XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
00069   virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00070                                                XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
00071 
00073   virtual XQillaConfiguration *getConfiguration() const = 0;
00074 
00077   virtual XQilla::Language getLanguage() const = 0;
00078   
00080   virtual ItemFactory *getItemFactory() const = 0;
00082   virtual void setItemFactory(ItemFactory *factory) = 0;
00083 
00085   virtual const StaticType &getContextItemType() const = 0;
00087   virtual void setContextItemType(const StaticType &st) = 0;
00088 
00090   virtual bool getXPath1CompatibilityMode() const = 0;
00092   virtual void setXPath1CompatibilityMode(bool newMode) = 0;
00093 
00095   virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const = 0;
00098   virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const = 0;
00101   virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const = 0;
00103   virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver) = 0;
00105   virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
00106 
00108   virtual const XMLCh* getDefaultElementAndTypeNS() const = 0;
00110   virtual void setDefaultElementAndTypeNS(const XMLCh* newNS) = 0;
00111 
00113   virtual const XMLCh* getDefaultFuncNS() const = 0;
00115   virtual void setDefaultFuncNS(const XMLCh* newNS) = 0;
00116 
00118   virtual const DocumentCache* getDocumentCache() const = 0;
00120   virtual void setDocumentCache(DocumentCache* docCache) = 0;
00121 
00130   virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0;
00136   virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0;
00138   virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0;
00139 
00141   virtual void setModuleResolver(ModuleResolver *resolver) = 0;
00143   virtual ModuleResolver *getModuleResolver() const = 0;
00144   /* Retrieve a list of locations for the given module URI */
00145   virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const = 0;
00146 
00148   virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location) = 0;
00149   
00151   virtual VariableTypeStore* getVariableTypeStore() = 0;
00152 
00154   virtual void addCustomFunction(FuncFactory *func) = 0;
00156   virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v) const = 0;
00157 
00159   virtual void addExternalFunction(const ExternalFunction *func) = 0;
00161   virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numArgs) const = 0;
00162 
00164   virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location) const = 0;
00166   virtual void addCollation(Collation* collation) = 0;
00167   
00169   virtual Collation* getDefaultCollation(const LocationInfo *location) const = 0;
00171   virtual void setDefaultCollation(const XMLCh* const URI) = 0;
00172 
00174   virtual const XMLCh* getBaseURI() const = 0;
00176   virtual void setBaseURI(const XMLCh* newURI) = 0;
00177 
00179   virtual NodeSetOrdering getNodeSetOrdering() const = 0;
00181   virtual void setNodeSetOrdering(NodeSetOrdering newOrder) = 0;
00182 
00184   virtual ConstructionMode getConstructionMode() const = 0;
00186   virtual void setConstructionMode(ConstructionMode newMode) = 0;
00187 
00189   virtual void setPreserveBoundarySpace(bool value) = 0;
00191   virtual bool getPreserveBoundarySpace() const = 0;
00192 
00194   virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const = 0;
00196   virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode) = 0;
00197 
00199   virtual void setInheritNamespaces(bool value) = 0;
00201   virtual bool getInheritNamespaces() const = 0;
00202 
00204   virtual void setPreserveNamespaces(bool value) = 0;
00206   virtual bool getPreserveNamespaces() const = 0;
00207 
00209   virtual void setRevalidationMode(DocumentCache::ValidationMode mode) = 0;
00211   virtual DocumentCache::ValidationMode getRevalidationMode() const = 0;
00212 
00214   virtual void setMessageListener(MessageListener *listener) = 0;
00216   virtual MessageListener *getMessageListener() const = 0;
00217 
00219   //  XQilla context specific accessors  //
00221 
00223   virtual const XMLCh *allocateTempVarName() = 0;
00224 
00226   virtual XPath2MemoryManager* getMemoryManager() const = 0;
00228   virtual void setMemoryManager(XPath2MemoryManager* memMgr) = 0;
00229 };
00230 
00231 #endif

Generated on Fri Aug 31 14:37:35 2007 for XQilla Simple API by  doxygen 1.5.1