1 /*
2 * Copyright 2006-2008 The FLWOR Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 %{ // start Implementation
19
20 #include <zorba/static_context_consts.h>
21
22
StaticContext(const StaticContext & aStaticContext)23 StaticContext::StaticContext(const StaticContext& aStaticContext) :
24 theStaticContext(aStaticContext.theStaticContext) {}
25
StaticContext(zorba::StaticContext_t aStaticContext)26 StaticContext::StaticContext(zorba::StaticContext_t aStaticContext) :
27 theStaticContext(aStaticContext) {}
28
addColation(const std::string & aURI)29 void StaticContext::addColation(const std::string& aURI)
30 { theStaticContext->addCollation(aURI); }
31
addNamespace(const std::string & aPrefix,const std::string & aURI)32 bool StaticContext::addNamespace(const std::string& aPrefix, const std::string& aURI)
33 { return theStaticContext->addNamespace(aPrefix, aURI); }
34
containsFunction(const std::string & aFnNameUri,const std::string & aFnNameLocal,int arity)35 bool StaticContext::containsFunction(const std::string &aFnNameUri, const std::string &aFnNameLocal, int arity) const
36 { return theStaticContext->containsFunction(aFnNameUri, aFnNameLocal, arity); }
37
createChildContext()38 StaticContext StaticContext::createChildContext() const
39 { return StaticContext(theStaticContext->createChildContext()); }
40
declareOption(const Item & aQName,const std::string & aOptionVal)41 void StaticContext::declareOption (const Item &aQName, const std::string &aOptionVal)
42 { return theStaticContext->declareOption(aQName.theItem, aOptionVal); }
43
disableFunction(const Item & aQName,int arity)44 void StaticContext::disableFunction (const Item &aQName, int arity)
45 { theStaticContext->disableFunction( aQName.theItem, arity); }
46
getBaseURI()47 std::string StaticContext::getBaseURI () const
48 { return std::string(theStaticContext->getBaseURI().c_str()); }
49
getBoundarySpacePolicy()50 ZorbaConstants::BoundarySpaceMode StaticContext::getBoundarySpacePolicy()
51 {
52 ZorbaConstants::BoundarySpaceMode result = ZorbaConstants::PRESERVE_SPACE;
53 zorba::boundary_space_mode_t boundary = theStaticContext->getBoundarySpacePolicy();
54 if (boundary == zorba::strip_space) {
55 result = ZorbaConstants::STRIP_SPACE;
56 }
57 return result;
58 }
59
getConstructionMode()60 ZorbaConstants::ConstructionMode StaticContext::getConstructionMode()
61 {
62 ZorbaConstants::ConstructionMode result = ZorbaConstants::STRIP_CONSTRUCTION;
63 zorba::construction_mode_t construction = theStaticContext->getConstructionMode();
64 if (construction == zorba::preserve_cons) {
65 result = ZorbaConstants::PRESERVE_CONSTRUCTION;
66 }
67 return result;
68 }
69
getCopyNamespacesModePreserve()70 ZorbaConstants::PreserveMode StaticContext::getCopyNamespacesModePreserve()
71 {
72 zorba::preserve_mode_t lPreserve;
73 zorba::inherit_mode_t lInherit;
74 ZorbaConstants::PreserveMode aPreserve = ZorbaConstants::NO_PRESERVE;
75 theStaticContext->getCopyNamespacesMode(lPreserve, lInherit);
76 if (lPreserve==zorba::preserve_ns) {
77 aPreserve = ZorbaConstants::PRESERVE;
78 }
79 return aPreserve;
80 }
81
getCopyNamespacesModeInherit()82 ZorbaConstants::InheritMode StaticContext::getCopyNamespacesModeInherit()
83 {
84 zorba::preserve_mode_t lPreserve;
85 zorba::inherit_mode_t lInherit;
86 ZorbaConstants::InheritMode aInherit = ZorbaConstants::NO_INHERIT;
87 theStaticContext->getCopyNamespacesMode(lPreserve, lInherit);
88 if (lInherit==zorba::inherit_ns) {
89 aInherit = ZorbaConstants::INHERIT;
90 }
91 return aInherit;
92 }
93
getDefaultCollation()94 std::string StaticContext::getDefaultCollation () const
95 { return std::string(theStaticContext->getDefaultCollation().c_str()); }
96
getDefaultElementAndTypeNamespace()97 std::string StaticContext::getDefaultElementAndTypeNamespace () const
98 {
99 return std::string( theStaticContext->getDefaultElementAndTypeNamespace().c_str() );
100 }
101
getDefaultFunctionNamespace()102 std::string StaticContext::getDefaultFunctionNamespace () const
103 {
104 return std::string( theStaticContext->getDefaultFunctionNamespace().c_str() );
105 }
106
getDefaultOrderForEmptySequences()107 ZorbaConstants::OrderEmptyMode StaticContext::getDefaultOrderForEmptySequences()
108 {
109 ZorbaConstants::OrderEmptyMode result = ZorbaConstants::EMPTY_GREATEST;
110 zorba::order_empty_mode_t order = theStaticContext->getDefaultOrderForEmptySequences();
111 if (order == zorba::empty_least) {
112 result = ZorbaConstants::EMPTY_LEAST;
113 }
114 return result;
115 }
116
getNamespaceURIByPrefix(const std::string & aPrefix)117 std::string StaticContext::getNamespaceURIByPrefix(const std::string &aPrefix) const
118 {
119 return std::string( theStaticContext->getNamespaceURIByPrefix(aPrefix).c_str() );
120 }
121
getOption(const Item & aQName,std::string & aOptionValue)122 bool StaticContext::getOption(const Item &aQName, std::string &aOptionValue) const
123 {
124 zorba::String optVal = zorba::String(aOptionValue.c_str());
125 return theStaticContext->getOption(aQName.theItem, optVal);
126 }
127
getOrderingMode()128 ZorbaConstants::OrderingMode StaticContext::getOrderingMode ()
129 {
130 ZorbaConstants::OrderingMode result = ZorbaConstants::ORDERED;
131 zorba::ordering_mode_t order = theStaticContext->getOrderingMode();
132 if (order == zorba::unordered) {
133 result = ZorbaConstants::UNORDERED;
134 }
135 return result;
136 }
137
getRevalidationMode()138 ZorbaConstants::RevalidationMode StaticContext::getRevalidationMode ()
139 {
140 ZorbaConstants::RevalidationMode result = ZorbaConstants::VALIDATE_SKIP;
141 zorba::validation_mode_t revalidation = theStaticContext->getRevalidationMode();
142 if (revalidation == zorba::validate_lax) {
143 result = ZorbaConstants::VALIDATE_LAX;
144 } else if (revalidation == zorba::validate_strict) {
145 result = ZorbaConstants::VALIDATE_STRICT;
146 }
147 return result;
148 }
149
getXPath1_0CompatibMode()150 ZorbaConstants::XPath1_0CompatibleMode StaticContext::getXPath1_0CompatibMode ()
151 {
152 ZorbaConstants::XPath1_0CompatibleMode result = ZorbaConstants::XPATH2_0;
153 zorba::xpath1_0compatib_mode_t comp = theStaticContext->getXPath1_0CompatibMode();
154 if (comp == zorba::xpath1_0) {
155 result = ZorbaConstants::XPATH1_0;
156 }
157 return result;
158 }
159
loadProlog(const std::string & aProlog,const CompilerHints & hints)160 void StaticContext::loadProlog (const std::string & aProlog, const CompilerHints &hints)
161 { theStaticContext->loadProlog( aProlog, hints.theCompilerHints); }
162
getExternalVariables(Iterator & vars)163 void StaticContext::getExternalVariables(Iterator& vars) const
164 { theStaticContext->getExternalVariables( vars.theIterator ); }
165
getStaticCollectionManager()166 StaticCollectionManager StaticContext::getStaticCollectionManager()
167 {
168 return StaticCollectionManager( theStaticContext->getStaticCollectionManager() );
169 }
170
getCollectionType(const std::string & aCollectionUri)171 TypeIdentifier StaticContext::getCollectionType(const std::string & aCollectionUri)
172 { return TypeIdentifier(theStaticContext->getCollectionType(aCollectionUri)); }
173
getDocumentType(const std::string & aDocUri)174 TypeIdentifier StaticContext::getDocumentType(const std::string &aDocUri)
175 { return TypeIdentifier(theStaticContext->getDocumentType(aDocUri)); }
176
getContextItemStaticType()177 TypeIdentifier StaticContext::getContextItemStaticType()
178 { return TypeIdentifier(theStaticContext->getContextItemStaticType()); }
179
getNamespaceBindings()180 std::vector< std::pair< std::string, std::string > > StaticContext::getNamespaceBindings () {
181 std::vector< std::pair< zorba::String, zorba::String > > items;
182 std::vector< std::pair< std::string, std::string > > result;
183 theStaticContext->getNamespaceBindings(items);
184 std::vector< std::pair< zorba::String, zorba::String > >::iterator iter;
185 for(iter = items.begin(); iter != items.end(); iter++) {
186 std::pair< std::string, std::string > pair;
187 pair.first = (*iter).first.c_str();
188 pair.second = (*iter).second.c_str();
189 result.push_back(pair);
190 }
191 return result;
192 }
193
194
195
setContextItemStaticType(const TypeIdentifier & aType)196 void StaticContext::setContextItemStaticType(const TypeIdentifier &aType)
197 { theStaticContext->setContextItemStaticType(aType.theTypeIdentifier); }
198
resetTraceStream()199 void StaticContext::resetTraceStream ()
200 { theStaticContext->resetTraceStream(); }
201
setBaseURI(const std::string & aBaseURI)202 bool StaticContext::setBaseURI (const std::string &aBaseURI)
203 { return theStaticContext->setBaseURI(aBaseURI); }
204
setBoundarySpacePolicy(ZorbaConstants::BoundarySpaceMode aMode)205 bool StaticContext::setBoundarySpacePolicy (ZorbaConstants::BoundarySpaceMode aMode)
206 {
207 zorba::boundary_space_mode_t lMode = zorba::strip_space;
208 if (aMode == ZorbaConstants::PRESERVE_SPACE) {
209 lMode = zorba::preserve_space;
210 }
211 return theStaticContext->setBoundarySpacePolicy(lMode);
212 }
213
setConstructionMode(ZorbaConstants::ConstructionMode aMode)214 bool StaticContext::setConstructionMode (ZorbaConstants::ConstructionMode aMode)
215 {
216 zorba::construction_mode_t lMode = zorba::preserve_cons;
217 if (aMode == ZorbaConstants::STRIP_CONSTRUCTION) {
218 lMode = zorba::strip_cons;
219 }
220 return theStaticContext->setConstructionMode(lMode);
221 }
222
setCopyNamespacesMode(ZorbaConstants::PreserveMode aPreserve,ZorbaConstants::InheritMode aInherit)223 bool StaticContext::setCopyNamespacesMode (ZorbaConstants::PreserveMode aPreserve, ZorbaConstants::InheritMode aInherit)
224 {
225 zorba::preserve_mode_t lPreserve = zorba::no_preserve_ns;
226 zorba::inherit_mode_t lInherit = zorba::no_inherit_ns;
227 if (aPreserve == ZorbaConstants::PRESERVE) {
228 lPreserve = zorba::preserve_ns;
229 }
230 if (aInherit == ZorbaConstants::INHERIT) {
231 lInherit = zorba::inherit_ns;
232 }
233 return theStaticContext->setCopyNamespacesMode(lPreserve, lInherit);
234 }
235
setDefaultCollation(const std::string & aURI)236 void StaticContext::setDefaultCollation (const std::string &aURI)
237 { theStaticContext->setDefaultCollation(aURI); }
238
setDefaultElementAndTypeNamespace(const std::string & aURI)239 bool StaticContext::setDefaultElementAndTypeNamespace (const std::string &aURI)
240 { return theStaticContext->setDefaultElementAndTypeNamespace(aURI); }
241
setDefaultFunctionNamespace(const std::string & aURI)242 bool StaticContext::setDefaultFunctionNamespace (const std::string &aURI)
243 { return theStaticContext->setDefaultFunctionNamespace(aURI); }
244
setDefaultOrderForEmptySequences(ZorbaConstants::OrderEmptyMode aMode)245 bool StaticContext::setDefaultOrderForEmptySequences (ZorbaConstants::OrderEmptyMode aMode)
246 {
247 zorba::order_empty_mode_t lMode = zorba::empty_greatest;
248 if (aMode == ZorbaConstants::EMPTY_LEAST) {
249 lMode = zorba::empty_least;
250 }
251 return theStaticContext->setDefaultOrderForEmptySequences(lMode);
252 }
253
setOrderingMode(ZorbaConstants::OrderingMode aMode)254 bool StaticContext::setOrderingMode (ZorbaConstants::OrderingMode aMode)
255 {
256 zorba::ordering_mode_t lMode = zorba::ordered;
257 if (aMode == ZorbaConstants::UNORDERED) {
258 lMode = zorba::unordered;
259 }
260 return theStaticContext->setOrderingMode(lMode);
261 }
262
setRevalidationMode(ZorbaConstants::RevalidationMode aMode)263 void StaticContext::setRevalidationMode (ZorbaConstants::RevalidationMode aMode)
264 {
265 zorba::validation_mode_t lMode = zorba::validate_skip;
266 if (aMode == ZorbaConstants::VALIDATE_LAX) {
267 lMode = zorba::validate_lax;
268 } else if (aMode == ZorbaConstants::VALIDATE_STRICT) {
269 lMode = zorba::validate_strict;
270 }
271 return theStaticContext->setRevalidationMode(lMode);
272 }
273
setURIPath(std::vector<std::string> & aURIPath)274 void StaticContext::setURIPath(std::vector< std::string > &aURIPath )
275 {
276 std::vector< zorba::String > lURIPath;
277 lURIPath.reserve(aURIPath.size());
278 std::vector< std::string >::iterator iter;
279 for(iter = aURIPath.begin(); iter != aURIPath.end(); iter++) {
280 lURIPath.push_back((*iter));
281 }
282 theStaticContext->setURIPath(lURIPath);
283 }
284
setLIBPath(std::vector<std::string> & aLIBPath)285 void StaticContext::setLIBPath(std::vector< std::string > &aLIBPath )
286 {
287 std::vector< zorba::String > lLIBPath;
288 lLIBPath.reserve(aLIBPath.size());
289 std::vector< std::string >::iterator iter;
290 for(iter = aLIBPath.begin(); iter != aLIBPath.end(); iter++) {
291 lLIBPath.push_back((*iter));
292 }
293 theStaticContext->setLibPath(lLIBPath);
294 }
295
setModulePath(std::vector<std::string> & aModulePath)296 void StaticContext::setModulePath(std::vector< std::string > &aModulePath )
297 {
298 std::vector< zorba::String > lModulePath;
299 lModulePath.reserve(aModulePath.size());
300 std::vector< std::string >::iterator iter;
301 for(iter = aModulePath.begin(); iter != aModulePath.end(); iter++) {
302 lModulePath.push_back((*iter));
303 }
304 theStaticContext->setModulePaths(lModulePath);
305 }
306
setXPath1_0CompatibMode(ZorbaConstants::XPath1_0CompatibleMode aMode)307 bool StaticContext::setXPath1_0CompatibMode (ZorbaConstants::XPath1_0CompatibleMode aMode)
308 {
309 zorba::xpath1_0compatib_mode_t lMode = zorba::xpath2_0;
310 if (aMode == ZorbaConstants::XPATH1_0) {
311 lMode = zorba::xpath1_0;
312 }
313 return theStaticContext->setXPath1_0CompatibMode(lMode);
314 }
315
destroy()316 void StaticContext::destroy()
317 { theStaticContext = 0; }
318
319 // class StaticContext
320
321
322
323
324 %} // end Implementation
325
326
327 // Interface
328
329 %rename(XPath1_0CompatibModeEnum) zorba::xpath1_0compatib_mode_t;
330 %rename(XPATH2_0) xpath2_0;
331 %rename(XPATH1_0) xpath1_0;
332
333 %rename(OrderingModeEnum) zorba::ordering_mode_t;
334 %rename(ORDERED) ordered;
335 %rename(UNORDERED) unordered;
336
337 %rename(OrderEmptyModeEnum) zorba::order_empty_mode_t;
338 %rename(EMPTY_GREATEST) empty_greatest;
339 %rename(EMPTY_LEAST) empty_least;
340
341 %rename(InheritModeEnum) zorba::inherit_mode_t;
342 %rename(INHERIT_NS) inherit_ns;
343 %rename(NO_INHERIT_NS) no_inherit_ns;
344
345 %rename(PreserveModeEnum) zorba::preserve_mode_t;
346 %rename(PRESERVE_NS) preserve_ns;
347 %rename(NO_PRESERVE_NS) no_preserve_ns;
348
349 %rename(BoundarySpaceModeEnum) zorba::boundary_space_mode_t;
350 %rename(PRESERVE_SPACE) preserve_space;
351 %rename(STRIP_SPACE) strip_space;
352
353 %rename(ConstructionModeEnum) zorba::construction_mode_t;
354 %rename(PRESERVE_CONS) preserve_cons;
355 %rename(STRIP_CONS) strip_cons;
356
357 %rename(XQueryVersionEnum) zorba::xquery_version_t;
358 %rename(XQUERY_VERSION_1_0) xquery_version_1_0;
359 %rename(XQUERY_VERSION_3_0) xquery_version_3_0;
360
361 %rename(ValidationModeEnum) zorba::validation_mode_t;
362 %rename(VALIDATE_SKIP) validate_skip;
363 %rename(VALIDATE_LAX) validate_lax;
364 %rename(VALIDATE_STRICT) validate_strict;
365
366 %include "StaticContext.h"
367