SourceForge.net Logo
DynamicContext.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001-2008
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004-2008
5  * Oracle. All rights reserved.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * $Id$
20  */
21 
22 #ifndef _DYNAMICCONTEXT_HPP
23 #define _DYNAMICCONTEXT_HPP
24 
27 
28 class Sequence;
29 class Item;
30 class URIResolver;
31 class VariableStore;
32 class SequenceBuilder;
33 class UpdateFactory;
34 class RegexGroupStore;
35 class DebugListener;
36 class StackFrame;
37 
39 class XQILLA_API DynamicContext : public StaticContext
40 {
41 public:
42  virtual ~DynamicContext() {};
43 
44  virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
45  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
46 
48  virtual void clearDynamicContext() = 0;
49 
51  virtual Item::Ptr getContextItem() const = 0;
53  virtual void setContextItem(const Item::Ptr &item) = 0;
54 
56  virtual size_t getContextPosition() const = 0;
58  virtual void setContextPosition(size_t pos) = 0;
59 
61  virtual size_t getContextSize() const = 0;
63  virtual void setContextSize(size_t size) = 0;
64 
66  virtual const VariableStore* getVariableStore() const = 0;
68  virtual void setVariableStore(const VariableStore *store) = 0;
70  virtual const VariableStore* getGlobalVariableStore() const = 0;
72  virtual void setGlobalVariableStore(const VariableStore *store) = 0;
74  virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Sequence &value) = 0;
76  virtual void setExternalVariable(const XMLCh *qname, const Sequence &value) = 0;
77 
79  virtual const RegexGroupStore* getRegexGroupStore() const = 0;
81  virtual void setRegexGroupStore(const RegexGroupStore *store) = 0;
82 
84  virtual time_t getCurrentTime() const = 0;
86  virtual void setCurrentTime(time_t newTime) = 0;
87 
89  virtual ATDurationOrDerived::Ptr getImplicitTimezone() const = 0;
91  virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) = 0;
92 
94  // XQilla context specific accessors //
96 
109  virtual void registerURIResolver(URIResolver *resolver, bool adopt) = 0;
111  virtual URIResolver *getDefaultURIResolver() const = 0;
113  virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt) = 0;
114 
116  virtual void setDebugListener(DebugListener *listener) = 0;
118  virtual DebugListener *getDebugListener() const = 0;
119 
121  virtual void setStackFrame(const StackFrame *frame) = 0;
123  virtual const StackFrame *getStackFrame() const = 0;
124 
126  virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse,
127  const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0;
130  virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location = 0,
131  const QueryPathNode *projection = 0) = 0;
134  virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location = 0,
135  const QueryPathNode *projection = 0) = 0;
137  virtual Sequence resolveDefaultCollection(const QueryPathNode *projection = 0) = 0;
138 
141  virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri) = 0;
142 
145  virtual SequenceBuilder *createSequenceBuilder() const = 0;
146 
149  virtual UpdateFactory *createUpdateFactory() const = 0;
150 
152  virtual void testInterrupt() const = 0;
153 };
154 
155 #endif
virtual ~DynamicContext()
Definition: DynamicContext.hpp:42
This is an abstract class used to resolve URIs in different ways.
Definition: URIResolver.hpp:39
A class that represents an item in a query call stack.
Definition: StackFrame.hpp:47
Definition: SequenceBuilder.hpp:33
The parse time static context interface.
Definition: StaticContext.hpp:59
A class used to listen for debugging information.
Definition: DebugListener.hpp:36
Definition: UpdateFactory.hpp:34
Definition: Item.hpp:38
The execution time dynamic context interface.
Definition: DynamicContext.hpp:39
The pure virtual base class for accessing regular expression group values at runtime.
Definition: RegexGroupStore.hpp:32
The pure virtual base class for accessing variables at runtime.
Definition: VariableStore.hpp:33
A class that gives records a location in the query.
Definition: LocationInfo.hpp:31
An eagerly evaluated result of a query execution.
Definition: Sequence.hpp:41