Update obsolete contact address.
[profile/ivi/qtxmlpatterns.git] / src / xmlpatterns / environment / qgenericdynamiccontext.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: http://www.qt-project.org/
6 **
7 ** This file is part of the QtXmlPatterns module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 **
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 **
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
29 **
30 ** Other Usage
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #include "qcommonvalues_p.h"
43 #include "qfocus_p.h"
44 #include "qtemplatemode_p.h"
45
46 #include "qgenericdynamiccontext_p.h"
47
48 QT_BEGIN_NAMESPACE
49
50 using namespace QPatternist;
51
52 GenericDynamicContext::GenericDynamicContext(const NamePool::Ptr &np,
53                                              QAbstractMessageHandler *const errHandler,
54                                              const LocationHash &locations) : m_messageHandler(errHandler)
55                                                                             , m_currentDateTime(QDateTime::currentDateTime().toTimeSpec(Qt::UTC))
56                                                                             , m_outputReceiver(0)
57                                                                             , m_namePool(np)
58                                                                             , m_locations(locations)
59                                                                             , m_uriResolver(0)
60 {
61     Q_ASSERT(m_messageHandler);
62     Q_ASSERT(m_namePool);
63 }
64
65 QExplicitlySharedDataPointer<DayTimeDuration> GenericDynamicContext::implicitTimezone() const
66 {
67     /* Or what do you prefer, sir? */
68     return CommonValues::DayTimeDurationZero;
69 }
70
71 QAbstractMessageHandler * GenericDynamicContext::messageHandler() const
72 {
73     return m_messageHandler;
74 }
75
76 QDateTime GenericDynamicContext::currentDateTime() const
77 {
78     return m_currentDateTime;
79 }
80
81 xsInteger GenericDynamicContext::contextPosition() const
82 {
83     Q_ASSERT_X(false, Q_FUNC_INFO, "That this function is called makes no sense. A Focus should be used.");
84     return 0;
85 }
86
87 Item GenericDynamicContext::contextItem() const
88 {
89     return Item();
90 }
91
92 xsInteger GenericDynamicContext::contextSize()
93 {
94     Q_ASSERT_X(false, Q_FUNC_INFO, "That this function is called makes no sense. A Focus should be used.");
95     return 0;
96 }
97
98 void GenericDynamicContext::setFocusIterator(const Item::Iterator::Ptr &)
99 {
100     Q_ASSERT_X(false, Q_FUNC_INFO, "That this function is called makes no sense. A Focus should be used.");
101 }
102
103 Item::Iterator::Ptr GenericDynamicContext::focusIterator() const
104 {
105     return Item::Iterator::Ptr();
106 }
107
108 QAbstractXmlReceiver *GenericDynamicContext::outputReceiver() const
109 {
110     return m_outputReceiver;
111 }
112
113 void GenericDynamicContext::setOutputReceiver(QAbstractXmlReceiver *const receiver)
114 {
115     m_outputReceiver = receiver;
116 }
117
118 void GenericDynamicContext::setNodeBuilder(NodeBuilder::Ptr &builder)
119 {
120     m_nodeBuilder = builder;
121 }
122
123 NodeBuilder::Ptr GenericDynamicContext::nodeBuilder(const QUrl &baseURI) const
124 {
125     return m_nodeBuilder->create(baseURI);
126 }
127
128 ResourceLoader::Ptr GenericDynamicContext::resourceLoader() const
129 {
130     return m_resourceLoader;
131 }
132
133 void GenericDynamicContext::setResourceLoader(const ResourceLoader::Ptr &loader)
134 {
135     m_resourceLoader = loader;
136 }
137
138 ExternalVariableLoader::Ptr GenericDynamicContext::externalVariableLoader() const
139 {
140     return m_externalVariableLoader;
141 }
142
143 void GenericDynamicContext::setExternalVariableLoader(const ExternalVariableLoader::Ptr &loader)
144 {
145     m_externalVariableLoader = loader;
146 }
147
148 NamePool::Ptr GenericDynamicContext::namePool() const
149 {
150     return m_namePool;
151 }
152
153 QSourceLocation GenericDynamicContext::locationFor(const SourceLocationReflection *const reflection) const
154 {
155
156     return m_locations.value(reflection->actualReflection());
157 }
158
159 void GenericDynamicContext::addNodeModel(const QAbstractXmlNodeModel::Ptr &nm)
160 {
161     m_nodeModels.append(nm);
162 }
163
164 const QAbstractUriResolver *GenericDynamicContext::uriResolver() const
165 {
166     return m_uriResolver;
167 }
168
169 ItemCacheCell &GenericDynamicContext::globalItemCacheCell(const VariableSlotID slot)
170 {
171     if(slot >= m_globalItemCacheCells.size())
172         m_globalItemCacheCells.resize(qMax(slot + 1, m_globalItemCacheCells.size()));
173
174     return m_globalItemCacheCells[slot];
175 }
176
177 ItemSequenceCacheCell::Vector &GenericDynamicContext::globalItemSequenceCacheCells(const VariableSlotID slot)
178 {
179     if(slot >= m_globalItemSequenceCacheCells.size())
180         m_globalItemSequenceCacheCells.resize(qMax(slot + 1, m_globalItemSequenceCacheCells.size()));
181
182     return m_globalItemSequenceCacheCells;
183 }
184
185 void GenericDynamicContext::setUriResolver(const QAbstractUriResolver *const resolver)
186 {
187     m_uriResolver = resolver;
188 }
189
190 Item GenericDynamicContext::currentItem() const
191 {
192     return Item();
193 }
194
195 DynamicContext::Ptr GenericDynamicContext::previousContext() const
196 {
197     return DynamicContext::Ptr();
198 }
199
200 QExplicitlySharedDataPointer<TemplateMode> GenericDynamicContext::currentTemplateMode() const
201 {
202     return QExplicitlySharedDataPointer<TemplateMode>();
203 }
204
205 QT_END_NAMESPACE