Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <svl/zforlist.hxx>
30 : : #include <sal/macros.h>
31 : :
32 : : #include <xmloff/nmspmap.hxx>
33 : : #include <xmloff/xmlnmspe.hxx>
34 : : #include <xmloff/i18nmap.hxx>
35 : : #include <xmloff/xmltkmap.hxx>
36 : : #include <xmloff/xmlictxt.hxx>
37 : : #include <xmloff/xmlmetai.hxx>
38 : : #include <sfx2/objsh.hxx>
39 : : #include <xmloff/xmlnumfi.hxx>
40 : : #include <xmloff/xmlscripti.hxx>
41 : : #include <xmloff/XMLFontStylesContext.hxx>
42 : : #include <xmloff/DocumentSettingsContext.hxx>
43 : : #include <xmloff/xmluconv.hxx>
44 : : #include <xmloff/numehelp.hxx>
45 : : #include <xmloff/xmltoken.hxx>
46 : : #include <xmloff/xmlerror.hxx>
47 : :
48 : : #include <sax/tools/converter.hxx>
49 : :
50 : : #include <svl/zformat.hxx>
51 : : #include <svl/languageoptions.hxx>
52 : :
53 : : #include "xmlimprt.hxx"
54 : : #include "document.hxx"
55 : : #include "docsh.hxx"
56 : : #include "docuno.hxx"
57 : : #include "nameuno.hxx"
58 : : #include "xmlbodyi.hxx"
59 : : #include "xmlstyli.hxx"
60 : : #include "ViewSettingsSequenceDefines.hxx"
61 : :
62 : : #include "patattr.hxx"
63 : :
64 : : #include "XMLConverter.hxx"
65 : : #include "XMLTableShapeImportHelper.hxx"
66 : : #include "XMLChangeTrackingImportHelper.hxx"
67 : : #include "chgviset.hxx"
68 : : #include "XMLStylesImportHelper.hxx"
69 : : #include "sheetdata.hxx"
70 : : #include "unonames.hxx"
71 : : #include "rangeutl.hxx"
72 : : #include "postit.hxx"
73 : : #include "formulaparserpool.hxx"
74 : : #include <comphelper/extract.hxx>
75 : :
76 : : #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
77 : : #include <com/sun/star/frame/XModel.hpp>
78 : : #include <com/sun/star/sheet/XSheetCellRange.hpp>
79 : : #include <com/sun/star/sheet/XCellRangeAddressable.hpp>
80 : : #include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
81 : : #include <com/sun/star/util/XMergeable.hpp>
82 : : #include <com/sun/star/sheet/CellInsertMode.hpp>
83 : : #include <com/sun/star/sheet/XCellRangeMovement.hpp>
84 : : #include <com/sun/star/document/XActionLockable.hpp>
85 : : #include <com/sun/star/util/NumberFormat.hpp>
86 : : #include <com/sun/star/util/XNumberFormatTypes.hpp>
87 : : #include <com/sun/star/sheet/XNamedRanges.hpp>
88 : : #include <com/sun/star/sheet/NamedRangeFlag.hpp>
89 : : #include <com/sun/star/sheet/XNamedRange.hpp>
90 : : #include <com/sun/star/sheet/XLabelRanges.hpp>
91 : : #include <com/sun/star/io/XSeekable.hpp>
92 : : #include <com/sun/star/beans/XPropertySet.hpp>
93 : :
94 : : #include <memory>
95 : :
96 : : #define SC_LOCALE "Locale"
97 : : #define SC_STANDARDFORMAT "StandardFormat"
98 : : #define SC_CURRENCYSYMBOL "CurrencySymbol"
99 : : #define SC_REPEAT_COLUMN "repeat-column"
100 : : #define SC_REPEAT_ROW "repeat-row"
101 : : #define SC_FILTER "filter"
102 : : #define SC_PRINT_RANGE "print-range"
103 : :
104 : : using namespace com::sun::star;
105 : : using namespace ::xmloff::token;
106 : : using namespace ::formula;
107 : : using ::com::sun::star::uno::Reference;
108 : : using ::com::sun::star::uno::UNO_QUERY;
109 : : using ::rtl::OUString;
110 : : using ::rtl::OUStringBuffer;
111 : :
112 : 181 : OUString SAL_CALL ScXMLImport_getImplementationName() throw()
113 : : {
114 : 181 : return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLOasisImporter" ) );
115 : : }
116 : :
117 : 0 : uno::Sequence< rtl::OUString > SAL_CALL ScXMLImport_getSupportedServiceNames() throw()
118 : : {
119 : 0 : const rtl::OUString aServiceName( ScXMLImport_getImplementationName() );
120 [ # # ]: 0 : return uno::Sequence< rtl::OUString > ( &aServiceName, 1 );
121 : : }
122 : :
123 : 0 : uno::Reference< uno::XInterface > SAL_CALL ScXMLImport_createInstance(
124 : : const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
125 : : {
126 : : // #110680#
127 : : // return (cppu::OWeakObject*)new ScXMLImport(IMPORT_ALL);
128 [ # # ][ # # ]: 0 : return (cppu::OWeakObject*)new ScXMLImport( rSMgr, IMPORT_ALL );
129 : : }
130 : :
131 : 235 : OUString SAL_CALL ScXMLImport_Meta_getImplementationName() throw()
132 : : {
133 : 235 : return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLOasisMetaImporter" ) );
134 : : }
135 : :
136 : 27 : uno::Sequence< rtl::OUString > SAL_CALL ScXMLImport_Meta_getSupportedServiceNames() throw()
137 : : {
138 : 27 : const rtl::OUString aServiceName( ScXMLImport_Meta_getImplementationName() );
139 [ + - ]: 27 : return uno::Sequence< rtl::OUString > ( &aServiceName, 1 );
140 : : }
141 : :
142 : 93 : uno::Reference< uno::XInterface > SAL_CALL ScXMLImport_Meta_createInstance(
143 : : const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
144 : : {
145 : : // #110680#
146 : : // return (cppu::OWeakObject*)new ScXMLImport(IMPORT_META);
147 [ + - ][ + - ]: 93 : return (cppu::OWeakObject*)new ScXMLImport( rSMgr, IMPORT_META );
148 : : }
149 : :
150 : 235 : OUString SAL_CALL ScXMLImport_Styles_getImplementationName() throw()
151 : : {
152 : 235 : return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLOasisStylesImporter" ) );
153 : : }
154 : :
155 : 27 : uno::Sequence< rtl::OUString > SAL_CALL ScXMLImport_Styles_getSupportedServiceNames() throw()
156 : : {
157 : 27 : const rtl::OUString aServiceName( ScXMLImport_Styles_getImplementationName() );
158 [ + - ]: 27 : return uno::Sequence< rtl::OUString > ( &aServiceName, 1 );
159 : : }
160 : :
161 : 96 : uno::Reference< uno::XInterface > SAL_CALL ScXMLImport_Styles_createInstance(
162 : : const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
163 : : {
164 : : // #110680#
165 : : // return (cppu::OWeakObject*)new ScXMLImport(IMPORT_STYLES|IMPORT_AUTOSTYLES|IMPORT_MASTERSTYLES|IMPORT_FONTDECLS);
166 [ + - ][ + - ]: 96 : return (cppu::OWeakObject*)new ScXMLImport( rSMgr, IMPORT_STYLES|IMPORT_AUTOSTYLES|IMPORT_MASTERSTYLES|IMPORT_FONTDECLS);
167 : : }
168 : :
169 : 235 : OUString SAL_CALL ScXMLImport_Content_getImplementationName() throw()
170 : : {
171 : 235 : return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLOasisContentImporter" ) );
172 : : }
173 : :
174 : 27 : uno::Sequence< rtl::OUString > SAL_CALL ScXMLImport_Content_getSupportedServiceNames() throw()
175 : : {
176 : 27 : const rtl::OUString aServiceName( ScXMLImport_Content_getImplementationName() );
177 [ + - ]: 27 : return uno::Sequence< rtl::OUString > ( &aServiceName, 1 );
178 : : }
179 : :
180 : 93 : uno::Reference< uno::XInterface > SAL_CALL ScXMLImport_Content_createInstance(
181 : : const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
182 : : {
183 : : // #110680#
184 : : // return (cppu::OWeakObject*)new ScXMLImport(IMPORT_META|IMPORT_STYLES|IMPORT_MASTERSTYLES|IMPORT_AUTOSTYLES|IMPORT_CONTENT|IMPORT_SCRIPTS|IMPORT_SETTINGS|IMPORT_FONTDECLS);
185 [ + - ][ + - ]: 93 : return (cppu::OWeakObject*)new ScXMLImport( rSMgr, IMPORT_AUTOSTYLES|IMPORT_CONTENT|IMPORT_SCRIPTS|IMPORT_FONTDECLS);
186 : : }
187 : :
188 : 235 : OUString SAL_CALL ScXMLImport_Settings_getImplementationName() throw()
189 : : {
190 : 235 : return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLOasisSettingsImporter" ) );
191 : : }
192 : :
193 : 27 : uno::Sequence< rtl::OUString > SAL_CALL ScXMLImport_Settings_getSupportedServiceNames() throw()
194 : : {
195 : 27 : const rtl::OUString aServiceName( ScXMLImport_Settings_getImplementationName() );
196 [ + - ]: 27 : return uno::Sequence< rtl::OUString > ( &aServiceName, 1 );
197 : : }
198 : :
199 : 96 : uno::Reference< uno::XInterface > SAL_CALL ScXMLImport_Settings_createInstance(
200 : : const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
201 : : {
202 : : // #110680#
203 : : // return (cppu::OWeakObject*)new ScXMLImport(IMPORT_SETTINGS);
204 [ + - ][ + - ]: 96 : return (cppu::OWeakObject*)new ScXMLImport( rSMgr, IMPORT_SETTINGS );
205 : : }
206 : :
207 : 10481 : const SvXMLTokenMap& ScXMLImport::GetTableRowCellAttrTokenMap()
208 : : {
209 : : static SvXMLTokenMapEntry aTableRowCellAttrTokenMap[] =
210 : : {
211 : : { XML_NAMESPACE_TABLE, XML_STYLE_NAME, XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME },
212 : : { XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION_NAME, XML_TOK_TABLE_ROW_CELL_ATTR_CONTENT_VALIDATION_NAME },
213 : : { XML_NAMESPACE_TABLE, XML_NUMBER_ROWS_SPANNED, XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_ROWS },
214 : : { XML_NAMESPACE_TABLE, XML_NUMBER_COLUMNS_SPANNED, XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_COLS },
215 : : { XML_NAMESPACE_TABLE, XML_NUMBER_MATRIX_COLUMNS_SPANNED, XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_COLS },
216 : : { XML_NAMESPACE_TABLE, XML_NUMBER_MATRIX_ROWS_SPANNED, XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_ROWS },
217 : : { XML_NAMESPACE_TABLE, XML_NUMBER_COLUMNS_REPEATED, XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED },
218 : : { XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE },
219 : : { XML_NAMESPACE_OFFICE, XML_VALUE, XML_TOK_TABLE_ROW_CELL_ATTR_VALUE },
220 : : { XML_NAMESPACE_OFFICE, XML_DATE_VALUE, XML_TOK_TABLE_ROW_CELL_ATTR_DATE_VALUE },
221 : : { XML_NAMESPACE_OFFICE, XML_TIME_VALUE, XML_TOK_TABLE_ROW_CELL_ATTR_TIME_VALUE },
222 : : { XML_NAMESPACE_OFFICE, XML_STRING_VALUE, XML_TOK_TABLE_ROW_CELL_ATTR_STRING_VALUE },
223 : : { XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE, XML_TOK_TABLE_ROW_CELL_ATTR_BOOLEAN_VALUE },
224 : : { XML_NAMESPACE_TABLE, XML_FORMULA, XML_TOK_TABLE_ROW_CELL_ATTR_FORMULA },
225 : : { XML_NAMESPACE_OFFICE, XML_CURRENCY, XML_TOK_TABLE_ROW_CELL_ATTR_CURRENCY },
226 : : XML_TOKEN_MAP_END
227 : : };
228 : :
229 [ + + ]: 10481 : if ( !pTableRowCellAttrTokenMap )
230 [ + - ]: 93 : pTableRowCellAttrTokenMap = new SvXMLTokenMap( aTableRowCellAttrTokenMap );
231 : 10481 : return *pTableRowCellAttrTokenMap;
232 : : }
233 : :
234 : : //----------------------------------------------------------------------------
235 : :
236 : :
237 : :
238 : :
239 : :
240 : :
241 : :
242 : :
243 : :
244 : :
245 : :
246 : :
247 : :
248 : :
249 : :
250 : :
251 : :
252 : :
253 : :
254 : :
255 : :
256 : : // NB: virtually inherit so we can multiply inherit properly
257 : : // in ScXMLFlatDocContext_Impl
258 : : class ScXMLDocContext_Impl : public virtual SvXMLImportContext
259 : : {
260 : : protected:
261 : : const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
262 : 2421 : ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
263 : :
264 : : public:
265 : :
266 : : ScXMLDocContext_Impl( ScXMLImport& rImport,
267 : : sal_uInt16 nPrfx,
268 : : const OUString& rLName,
269 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList );
270 : : virtual ~ScXMLDocContext_Impl();
271 : :
272 : : virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
273 : : const rtl::OUString& rLocalName,
274 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList );
275 : : };
276 : :
277 : 280 : ScXMLDocContext_Impl::ScXMLDocContext_Impl( ScXMLImport& rImport, sal_uInt16 nPrfx,
278 : : const OUString& rLName,
279 : : const uno::Reference<xml::sax::XAttributeList>& /* xAttrList */ ) :
280 : 280 : SvXMLImportContext( rImport, nPrfx, rLName )
281 : : {
282 : :
283 : 280 : }
284 : :
285 : 280 : ScXMLDocContext_Impl::~ScXMLDocContext_Impl()
286 : : {
287 [ + - ][ - + ]: 840 : }
[ # # ][ # # ]
288 : :
289 : : // context for flat file xml format
290 : : class ScXMLFlatDocContext_Impl
291 : : : public ScXMLDocContext_Impl, public SvXMLMetaDocumentContext
292 : : {
293 : : public:
294 : : ScXMLFlatDocContext_Impl( ScXMLImport& i_rImport,
295 : : sal_uInt16 i_nPrefix, const OUString & i_rLName,
296 : : const uno::Reference<xml::sax::XAttributeList>& i_xAttrList,
297 : : const uno::Reference<document::XDocumentProperties>& i_xDocProps,
298 : : const uno::Reference<xml::sax::XDocumentHandler>& i_xDocBuilder);
299 : :
300 : : virtual ~ScXMLFlatDocContext_Impl();
301 : :
302 : : virtual SvXMLImportContext *CreateChildContext(
303 : : sal_uInt16 i_nPrefix, const OUString& i_rLocalName,
304 : : const uno::Reference<xml::sax::XAttributeList>& i_xAttrList);
305 : : };
306 : :
307 : 0 : ScXMLFlatDocContext_Impl::ScXMLFlatDocContext_Impl( ScXMLImport& i_rImport,
308 : : sal_uInt16 i_nPrefix, const OUString & i_rLName,
309 : : const uno::Reference<xml::sax::XAttributeList>& i_xAttrList,
310 : : const uno::Reference<document::XDocumentProperties>& i_xDocProps,
311 : : const uno::Reference<xml::sax::XDocumentHandler>& i_xDocBuilder) :
312 : : SvXMLImportContext(i_rImport, i_nPrefix, i_rLName),
313 : : ScXMLDocContext_Impl(i_rImport, i_nPrefix, i_rLName, i_xAttrList),
314 : : SvXMLMetaDocumentContext(i_rImport, i_nPrefix, i_rLName,
315 [ # # ][ # # ]: 0 : i_xDocProps, i_xDocBuilder)
[ # # ][ # # ]
316 : : {
317 : 0 : }
318 : :
319 [ # # ][ # # ]: 0 : ScXMLFlatDocContext_Impl::~ScXMLFlatDocContext_Impl() { }
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
320 : :
321 : :
322 : 0 : SvXMLImportContext *ScXMLFlatDocContext_Impl::CreateChildContext(
323 : : sal_uInt16 i_nPrefix, const OUString& i_rLocalName,
324 : : const uno::Reference<xml::sax::XAttributeList>& i_xAttrList)
325 : : {
326 : : // behave like meta base class iff we encounter office:meta
327 : 0 : const SvXMLTokenMap& rTokenMap = GetScImport().GetDocElemTokenMap();
328 [ # # ]: 0 : if ( XML_TOK_DOC_META == rTokenMap.Get( i_nPrefix, i_rLocalName ) ) {
329 : : return SvXMLMetaDocumentContext::CreateChildContext(
330 : 0 : i_nPrefix, i_rLocalName, i_xAttrList );
331 : : } else {
332 : : return ScXMLDocContext_Impl::CreateChildContext(
333 : 0 : i_nPrefix, i_rLocalName, i_xAttrList );
334 : : }
335 : : }
336 : :
337 : : class ScXMLBodyContext_Impl : public SvXMLImportContext
338 : : {
339 : : const ScXMLImport& GetScImport() const
340 : : { return (const ScXMLImport&)GetImport(); }
341 : 93 : ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
342 : :
343 : : public:
344 : :
345 : : ScXMLBodyContext_Impl( ScXMLImport& rImport, sal_uInt16 nPrfx,
346 : : const OUString& rLName,
347 : : const uno::Reference< xml::sax::XAttributeList > & xAttrList );
348 : : virtual ~ScXMLBodyContext_Impl();
349 : :
350 : : virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
351 : : const OUString& rLocalName,
352 : : const uno::Reference< xml::sax::XAttributeList > & xAttrList );
353 : : };
354 : :
355 : 93 : ScXMLBodyContext_Impl::ScXMLBodyContext_Impl( ScXMLImport& rImport,
356 : : sal_uInt16 nPrfx, const OUString& rLName,
357 : : const uno::Reference< xml::sax::XAttributeList > & /* xAttrList */ ) :
358 : 93 : SvXMLImportContext( rImport, nPrfx, rLName )
359 : : {
360 : 93 : }
361 : :
362 : 93 : ScXMLBodyContext_Impl::~ScXMLBodyContext_Impl()
363 : : {
364 [ - + ]: 186 : }
365 : :
366 : 93 : SvXMLImportContext *ScXMLBodyContext_Impl::CreateChildContext(
367 : : sal_uInt16 /* nPrefix */,
368 : : const OUString& rLocalName,
369 : : const uno::Reference< xml::sax::XAttributeList > & xAttrList )
370 : : {
371 : 93 : return GetScImport().CreateBodyContext( rLocalName, xAttrList );
372 : : }
373 : :
374 : 838 : SvXMLImportContext *ScXMLDocContext_Impl::CreateChildContext( sal_uInt16 nPrefix,
375 : : const rtl::OUString& rLocalName,
376 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList )
377 : : {
378 : 838 : SvXMLImportContext *pContext(0);
379 : :
380 : 838 : const SvXMLTokenMap& rTokenMap(GetScImport().GetDocElemTokenMap());
381 [ + + + + : 838 : switch( rTokenMap.Get( nPrefix, rLocalName ) )
- + + +
- ]
382 : : {
383 : : case XML_TOK_DOC_FONTDECLS:
384 [ + - ]: 186 : if (GetScImport().getImportFlags() & IMPORT_FONTDECLS)
385 : 186 : pContext = GetScImport().CreateFontDeclsContext(nPrefix, rLocalName, xAttrList);
386 : 186 : break;
387 : : case XML_TOK_DOC_STYLES:
388 [ + - ]: 94 : if (GetScImport().getImportFlags() & IMPORT_STYLES)
389 : 94 : pContext = GetScImport().CreateStylesContext( rLocalName, xAttrList, false);
390 : 94 : break;
391 : : case XML_TOK_DOC_AUTOSTYLES:
392 [ + - ]: 186 : if (GetScImport().getImportFlags() & IMPORT_AUTOSTYLES)
393 : 186 : pContext = GetScImport().CreateStylesContext( rLocalName, xAttrList, true);
394 : 186 : break;
395 : : case XML_TOK_DOC_MASTERSTYLES:
396 [ + - ]: 93 : if (GetScImport().getImportFlags() & IMPORT_MASTERSTYLES)
397 : 93 : pContext = new ScXMLMasterStylesContext( GetImport(), nPrefix, rLocalName,
398 [ + - ]: 93 : xAttrList );
399 : 93 : break;
400 : : case XML_TOK_DOC_META:
401 : : DBG_WARNING("XML_TOK_DOC_META: should not have come here, maybe document is invalid?");
402 : 0 : break;
403 : : case XML_TOK_DOC_SCRIPTS:
404 [ + - ]: 93 : if (GetScImport().getImportFlags() & IMPORT_SCRIPTS)
405 : 93 : pContext = GetScImport().CreateScriptContext( rLocalName );
406 : 93 : break;
407 : : case XML_TOK_DOC_BODY:
408 [ + - ]: 93 : if (GetScImport().getImportFlags() & IMPORT_CONTENT)
409 : : pContext = new ScXMLBodyContext_Impl( GetScImport(), nPrefix,
410 [ + - ]: 93 : rLocalName, xAttrList );
411 : 93 : break;
412 : : case XML_TOK_DOC_SETTINGS:
413 [ + - ]: 93 : if (GetScImport().getImportFlags() & IMPORT_SETTINGS)
414 [ + - ]: 93 : pContext = new XMLDocumentSettingsContext(GetScImport(), nPrefix, rLocalName, xAttrList );
415 : 93 : break;
416 : : }
417 : :
418 [ - + ]: 838 : if(!pContext)
419 [ # # ]: 0 : pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
420 : :
421 : 838 : return pContext;
422 : : }
423 : :
424 : 838 : const SvXMLTokenMap& ScXMLImport::GetDocElemTokenMap()
425 : : {
426 [ + + ]: 838 : if( !pDocElemTokenMap )
427 : : {
428 : : static SvXMLTokenMapEntry aDocTokenMap[] =
429 : : {
430 : : { XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS, XML_TOK_DOC_FONTDECLS },
431 : : { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES },
432 : : { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES },
433 : : { XML_NAMESPACE_OFFICE, XML_MASTER_STYLES, XML_TOK_DOC_MASTERSTYLES },
434 : : { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META },
435 : : { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPTS },
436 : : { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY },
437 : : { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS },
438 : : XML_TOKEN_MAP_END
439 : : };
440 : :
441 [ + - ]: 280 : pDocElemTokenMap = new SvXMLTokenMap( aDocTokenMap );
442 : :
443 : : } // if( !pDocElemTokenMap )
444 : :
445 : 838 : return *pDocElemTokenMap;
446 : : }
447 : :
448 : :
449 : 294 : const SvXMLTokenMap& ScXMLImport::GetBodyElemTokenMap()
450 : : {
451 [ + + ]: 294 : if( !pBodyElemTokenMap )
452 : : {
453 : : static SvXMLTokenMapEntry aBodyTokenMap[] =
454 : : {
455 : : { XML_NAMESPACE_TABLE, XML_TRACKED_CHANGES, XML_TOK_BODY_TRACKED_CHANGES },
456 : : { XML_NAMESPACE_TABLE, XML_CALCULATION_SETTINGS, XML_TOK_BODY_CALCULATION_SETTINGS },
457 : : { XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATIONS, XML_TOK_BODY_CONTENT_VALIDATIONS },
458 : : { XML_NAMESPACE_TABLE, XML_LABEL_RANGES, XML_TOK_BODY_LABEL_RANGES },
459 : : { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_BODY_TABLE },
460 : : { XML_NAMESPACE_TABLE, XML_NAMED_EXPRESSIONS, XML_TOK_BODY_NAMED_EXPRESSIONS },
461 : : { XML_NAMESPACE_TABLE, XML_DATABASE_RANGES, XML_TOK_BODY_DATABASE_RANGES },
462 : : { XML_NAMESPACE_TABLE, XML_DATABASE_RANGE, XML_TOK_BODY_DATABASE_RANGE },
463 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_TABLES, XML_TOK_BODY_DATA_PILOT_TABLES },
464 : : { XML_NAMESPACE_TABLE, XML_CONSOLIDATION, XML_TOK_BODY_CONSOLIDATION },
465 : : { XML_NAMESPACE_TABLE, XML_DDE_LINKS, XML_TOK_BODY_DDE_LINKS },
466 : : XML_TOKEN_MAP_END
467 : : };
468 : :
469 [ + - ]: 93 : pBodyElemTokenMap = new SvXMLTokenMap( aBodyTokenMap );
470 : : } // if( !pBodyElemTokenMap )
471 : :
472 : 294 : return *pBodyElemTokenMap;
473 : : }
474 : :
475 : 6 : const SvXMLTokenMap& ScXMLImport::GetContentValidationsElemTokenMap()
476 : : {
477 [ + + ]: 6 : if( !pContentValidationsElemTokenMap )
478 : : {
479 : : static SvXMLTokenMapEntry aContentValidationsElemTokenMap[] =
480 : : {
481 : : { XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION, XML_TOK_CONTENT_VALIDATION },
482 : : XML_TOKEN_MAP_END
483 : : };
484 : :
485 [ + - ]: 3 : pContentValidationsElemTokenMap = new SvXMLTokenMap( aContentValidationsElemTokenMap );
486 : : } // if( !pContentValidationsElemTokenMap )
487 : :
488 : 6 : return *pContentValidationsElemTokenMap;
489 : : }
490 : :
491 : 6 : const SvXMLTokenMap& ScXMLImport::GetContentValidationElemTokenMap()
492 : : {
493 [ + + ]: 6 : if( !pContentValidationElemTokenMap )
494 : : {
495 : : static SvXMLTokenMapEntry aContentValidationElemTokenMap[] =
496 : : {
497 : : { XML_NAMESPACE_TABLE, XML_HELP_MESSAGE, XML_TOK_CONTENT_VALIDATION_ELEM_HELP_MESSAGE },
498 : : { XML_NAMESPACE_TABLE, XML_ERROR_MESSAGE, XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MESSAGE },
499 : : { XML_NAMESPACE_TABLE, XML_ERROR_MACRO, XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MACRO },
500 : : { XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, XML_TOK_CONTENT_VALIDATION_ELEM_EVENT_LISTENERS },
501 : : XML_TOKEN_MAP_END
502 : : };
503 : :
504 [ + - ]: 3 : pContentValidationElemTokenMap = new SvXMLTokenMap( aContentValidationElemTokenMap );
505 : : } // if( !pContentValidationElemTokenMap )
506 : :
507 : 6 : return *pContentValidationElemTokenMap;
508 : : }
509 : :
510 : 6 : const SvXMLTokenMap& ScXMLImport::GetContentValidationAttrTokenMap()
511 : : {
512 [ + + ]: 6 : if( !pContentValidationAttrTokenMap )
513 : : {
514 : : static SvXMLTokenMapEntry aContentValidationAttrTokenMap[] =
515 : : {
516 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_CONTENT_VALIDATION_NAME },
517 : : { XML_NAMESPACE_TABLE, XML_CONDITION, XML_TOK_CONTENT_VALIDATION_CONDITION },
518 : : { XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, XML_TOK_CONTENT_VALIDATION_BASE_CELL_ADDRESS },
519 : : { XML_NAMESPACE_TABLE, XML_ALLOW_EMPTY_CELL, XML_TOK_CONTENT_VALIDATION_ALLOW_EMPTY_CELL },
520 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_TOK_CONTENT_VALIDATION_DISPLAY_LIST },
521 : : XML_TOKEN_MAP_END
522 : : };
523 : :
524 [ + - ]: 3 : pContentValidationAttrTokenMap = new SvXMLTokenMap( aContentValidationAttrTokenMap );
525 : : } // if( !pContentValidationAttrTokenMap )
526 : :
527 : 6 : return *pContentValidationAttrTokenMap;
528 : : }
529 : :
530 : 6 : const SvXMLTokenMap& ScXMLImport::GetContentValidationMessageElemTokenMap()
531 : : {
532 [ + + ]: 6 : if( !pContentValidationMessageElemTokenMap )
533 : : {
534 : : static SvXMLTokenMapEntry aContentValidationMessageElemTokenMap[] =
535 : : {
536 : : { XML_NAMESPACE_TEXT, XML_P, XML_TOK_P },
537 : : XML_TOKEN_MAP_END
538 : : };
539 : :
540 [ + - ]: 3 : pContentValidationMessageElemTokenMap = new SvXMLTokenMap( aContentValidationMessageElemTokenMap );
541 : : } // if( !pContentValidationMessageElemTokenMap )
542 : :
543 : 6 : return *pContentValidationMessageElemTokenMap;
544 : : }
545 : :
546 : 0 : const SvXMLTokenMap& ScXMLImport::GetContentValidationHelpMessageAttrTokenMap()
547 : : {
548 [ # # ]: 0 : if( !pContentValidationHelpMessageAttrTokenMap )
549 : : {
550 : : static SvXMLTokenMapEntry aContentValidationHelpMessageAttrTokenMap[] =
551 : : {
552 : : { XML_NAMESPACE_TABLE, XML_TITLE, XML_TOK_HELP_MESSAGE_ATTR_TITLE },
553 : : { XML_NAMESPACE_TABLE, XML_DISPLAY, XML_TOK_HELP_MESSAGE_ATTR_DISPLAY },
554 : : XML_TOKEN_MAP_END
555 : : };
556 : :
557 [ # # ]: 0 : pContentValidationHelpMessageAttrTokenMap = new SvXMLTokenMap( aContentValidationHelpMessageAttrTokenMap );
558 : : } // if( !pContentValidationHelpMessageAttrTokenMap )
559 : :
560 : 0 : return *pContentValidationHelpMessageAttrTokenMap;
561 : : }
562 : :
563 : 6 : const SvXMLTokenMap& ScXMLImport::GetContentValidationErrorMessageAttrTokenMap()
564 : : {
565 [ + + ]: 6 : if( !pContentValidationErrorMessageAttrTokenMap )
566 : : {
567 : : static SvXMLTokenMapEntry aContentValidationErrorMessageAttrTokenMap[] =
568 : : {
569 : : { XML_NAMESPACE_TABLE, XML_TITLE, XML_TOK_ERROR_MESSAGE_ATTR_TITLE },
570 : : { XML_NAMESPACE_TABLE, XML_DISPLAY, XML_TOK_ERROR_MESSAGE_ATTR_DISPLAY },
571 : : { XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_TOK_ERROR_MESSAGE_ATTR_MESSAGE_TYPE },
572 : : XML_TOKEN_MAP_END
573 : : };
574 : :
575 [ + - ]: 3 : pContentValidationErrorMessageAttrTokenMap = new SvXMLTokenMap( aContentValidationErrorMessageAttrTokenMap );
576 : : } // if( !pContentValidationErrorMessageAttrTokenMap )
577 : :
578 : 6 : return *pContentValidationErrorMessageAttrTokenMap;
579 : : }
580 : :
581 : 0 : const SvXMLTokenMap& ScXMLImport::GetContentValidationErrorMacroAttrTokenMap()
582 : : {
583 [ # # ]: 0 : if( !pContentValidationErrorMacroAttrTokenMap )
584 : : {
585 : : static SvXMLTokenMapEntry aContentValidationErrorMacroAttrTokenMap[] =
586 : : {
587 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_ERROR_MACRO_ATTR_NAME },
588 : : { XML_NAMESPACE_TABLE, XML_EXECUTE, XML_TOK_ERROR_MACRO_ATTR_EXECUTE },
589 : : XML_TOKEN_MAP_END
590 : : };
591 : :
592 [ # # ]: 0 : pContentValidationErrorMacroAttrTokenMap = new SvXMLTokenMap( aContentValidationErrorMacroAttrTokenMap );
593 : : } // if( !pContentValidationErrorMacroAttrTokenMap )
594 : :
595 : 0 : return *pContentValidationErrorMacroAttrTokenMap;
596 : : }
597 : :
598 : 12 : const SvXMLTokenMap& ScXMLImport::GetCondFormatsTokenMap()
599 : : {
600 [ + + ]: 12 : if( !pCondFormatsTokenMap )
601 : : {
602 : : static SvXMLTokenMapEntry aCondFormatsElemTokenMap[] =
603 : : {
604 : : { XML_NAMESPACE_CALC_EXT, XML_CONDITIONAL_FORMAT, XML_TOK_CONDFORMATS_CONDFORMAT },
605 : : XML_TOKEN_MAP_END
606 : : };
607 : :
608 [ + - ]: 3 : pCondFormatsTokenMap = new SvXMLTokenMap( aCondFormatsElemTokenMap );
609 : : }
610 : :
611 : 12 : return *pCondFormatsTokenMap;
612 : : }
613 : :
614 : 12 : const SvXMLTokenMap& ScXMLImport::GetCondFormatTokenMap()
615 : : {
616 [ + + ]: 12 : if( !pCondFormatTokenMap )
617 : : {
618 : : static SvXMLTokenMapEntry aCondFormatElemTokenMap[] =
619 : : {
620 : : { XML_NAMESPACE_CALC_EXT, XML_COLOR_SCALE, XML_TOK_CONDFORMAT_COLORSCALE },
621 : : { XML_NAMESPACE_CALC_EXT, XML_DATA_BAR, XML_TOK_CONDFORMAT_DATABAR },
622 : : { XML_NAMESPACE_CALC_EXT, XML_CONDITION, XML_TOK_CONDFORMAT_CONDITION },
623 : : XML_TOKEN_MAP_END
624 : : };
625 : :
626 [ + - ]: 3 : pCondFormatTokenMap = new SvXMLTokenMap( aCondFormatElemTokenMap );
627 : : }
628 : :
629 : 12 : return *pCondFormatTokenMap;
630 : : }
631 : :
632 : 12 : const SvXMLTokenMap& ScXMLImport::GetCondFormatAttrMap()
633 : : {
634 [ + + ]: 12 : if( !pCondFormatAttrMap )
635 : : {
636 : : static SvXMLTokenMapEntry aCondFormatAttrTokenMap[] =
637 : : {
638 : : { XML_NAMESPACE_CALC_EXT, XML_TARGET_RANGE_ADDRESS, XML_TOK_CONDFORMAT_TARGET_RANGE },
639 : : XML_TOKEN_MAP_END
640 : : };
641 : :
642 [ + - ]: 3 : pCondFormatAttrMap = new SvXMLTokenMap( aCondFormatAttrTokenMap );
643 : : }
644 : :
645 : 12 : return *pCondFormatAttrMap;
646 : : }
647 : :
648 : 0 : const SvXMLTokenMap& ScXMLImport::GetConditionAttrMap()
649 : : {
650 [ # # ]: 0 : if( !pConditionAttrMap )
651 : : {
652 : : static SvXMLTokenMapEntry aConditionAttrTokenMap[] =
653 : : {
654 : : { XML_NAMESPACE_CALC_EXT, XML_VALUE, XML_TOK_CONDITION_VALUE },
655 : : { XML_NAMESPACE_CALC_EXT, XML_APPLY_STYLE_NAME, XML_TOK_CONDITION_APPLY_STYLE_NAME },
656 : : { XML_NAMESPACE_CALC_EXT, XML_BASE_CELL_ADDRESS, XML_TOK_CONDITION_BASE_CELL_ADDRESS },
657 : : XML_TOKEN_MAP_END
658 : : };
659 : :
660 [ # # ]: 0 : pConditionAttrMap = new SvXMLTokenMap( aConditionAttrTokenMap );
661 : : }
662 : :
663 : 0 : return *pConditionAttrMap;
664 : : }
665 : :
666 : 27 : const SvXMLTokenMap& ScXMLImport::GetColorScaleTokenMap()
667 : : {
668 [ + + ]: 27 : if( !pColorScaleTokenMap )
669 : : {
670 : : static SvXMLTokenMapEntry aColorScaleElemTokenMap[] =
671 : : {
672 : : { XML_NAMESPACE_CALC_EXT, XML_COLOR_SCALE_ENTRY, XML_TOK_COLORSCALE_COLORSCALEENTRY },
673 : : XML_TOKEN_MAP_END
674 : : };
675 : :
676 [ + - ]: 3 : pColorScaleTokenMap = new SvXMLTokenMap( aColorScaleElemTokenMap );
677 : : }
678 : :
679 : 27 : return *pColorScaleTokenMap;
680 : : }
681 : :
682 : 27 : const SvXMLTokenMap& ScXMLImport::GetColorScaleEntryAttrMap()
683 : : {
684 [ + + ]: 27 : if( !pColorScaleEntryAttrTokenMap )
685 : : {
686 : : static SvXMLTokenMapEntry aColorScaleAttrTokenMap[] =
687 : : {
688 : : { XML_NAMESPACE_CALC_EXT, XML_TYPE, XML_TOK_COLORSCALEENTRY_TYPE },
689 : : { XML_NAMESPACE_CALC_EXT, XML_VALUE, XML_TOK_COLORSCALEENTRY_VALUE },
690 : : { XML_NAMESPACE_CALC_EXT, XML_COLOR, XML_TOK_COLORSCALEENTRY_COLOR },
691 : : XML_TOKEN_MAP_END
692 : : };
693 : :
694 [ + - ]: 3 : pColorScaleEntryAttrTokenMap = new SvXMLTokenMap( aColorScaleAttrTokenMap );
695 : : }
696 : :
697 : 27 : return *pColorScaleEntryAttrTokenMap;
698 : : }
699 : :
700 : 0 : const SvXMLTokenMap& ScXMLImport::GetDataBarTokenMap()
701 : : {
702 [ # # ]: 0 : if( !pDataBarTokenMap )
703 : : {
704 : : static SvXMLTokenMapEntry aDataBarElemTokenMap[] =
705 : : {
706 : : { XML_NAMESPACE_CALC_EXT, XML_DATA_BAR_ENTRY, XML_TOK_DATABAR_DATABARENTRY },
707 : : XML_TOKEN_MAP_END
708 : : };
709 : :
710 [ # # ]: 0 : pDataBarTokenMap = new SvXMLTokenMap( aDataBarElemTokenMap );
711 : : }
712 : :
713 : 0 : return *pDataBarTokenMap;
714 : : }
715 : :
716 : 0 : const SvXMLTokenMap& ScXMLImport::GetDataBarAttrMap()
717 : : {
718 [ # # ]: 0 : if( !pDataBarAttrMap )
719 : : {
720 : : static SvXMLTokenMapEntry aDataBarAttrTokenMap[] =
721 : : {
722 : : { XML_NAMESPACE_CALC_EXT, XML_POSITIVE_COLOR, XML_TOK_DATABAR_POSITIVE_COLOR },
723 : : { XML_NAMESPACE_CALC_EXT, XML_NEGATIVE_COLOR, XML_TOK_DATABAR_NEGATIVE_COLOR },
724 : : { XML_NAMESPACE_CALC_EXT, XML_GRADIENT, XML_TOK_DATABAR_GRADIENT },
725 : : { XML_NAMESPACE_CALC_EXT, XML_AXIS_POSITION, XML_TOK_DATABAR_AXISPOSITION },
726 : : { XML_NAMESPACE_CALC_EXT, XML_SHOW_VALUE, XML_TOK_DATABAR_SHOWVALUE },
727 : : { XML_NAMESPACE_CALC_EXT, XML_AXIS_COLOR, XML_TOK_DATABAR_AXISCOLOR },
728 : : XML_TOKEN_MAP_END
729 : : };
730 : :
731 [ # # ]: 0 : pDataBarAttrMap = new SvXMLTokenMap( aDataBarAttrTokenMap );
732 : : }
733 : :
734 : 0 : return *pDataBarAttrMap;
735 : : }
736 : :
737 : 0 : const SvXMLTokenMap& ScXMLImport::GetDataBarEntryAttrMap()
738 : : {
739 [ # # ]: 0 : if( !pDataBarEntryAttrMap )
740 : : {
741 : : static SvXMLTokenMapEntry aDataBarAttrEntryTokenMap[] =
742 : : {
743 : : { XML_NAMESPACE_CALC_EXT, XML_TYPE, XML_TOK_DATABARENTRY_TYPE },
744 : : { XML_NAMESPACE_CALC_EXT, XML_VALUE, XML_TOK_DATABARENTRY_VALUE },
745 : : XML_TOKEN_MAP_END
746 : : };
747 : :
748 [ # # ]: 0 : pDataBarEntryAttrMap = new SvXMLTokenMap( aDataBarAttrEntryTokenMap );
749 : : }
750 : :
751 : 0 : return *pDataBarEntryAttrMap;
752 : : }
753 : :
754 : 0 : const SvXMLTokenMap& ScXMLImport::GetLabelRangesElemTokenMap()
755 : : {
756 [ # # ]: 0 : if( !pLabelRangesElemTokenMap )
757 : : {
758 : : static SvXMLTokenMapEntry aLabelRangesElemTokenMap[] =
759 : : {
760 : : { XML_NAMESPACE_TABLE, XML_LABEL_RANGE, XML_TOK_LABEL_RANGE_ELEM },
761 : : XML_TOKEN_MAP_END
762 : : };
763 : :
764 [ # # ]: 0 : pLabelRangesElemTokenMap = new SvXMLTokenMap( aLabelRangesElemTokenMap );
765 : : } // if( !pLabelRangesElemTokenMap )
766 : :
767 : 0 : return *pLabelRangesElemTokenMap;
768 : : }
769 : :
770 : 0 : const SvXMLTokenMap& ScXMLImport::GetLabelRangeAttrTokenMap()
771 : : {
772 [ # # ]: 0 : if( !pLabelRangeAttrTokenMap )
773 : : {
774 : : static SvXMLTokenMapEntry aLabelRangeAttrTokenMap[] =
775 : : {
776 : : { XML_NAMESPACE_TABLE, XML_LABEL_CELL_RANGE_ADDRESS, XML_TOK_LABEL_RANGE_ATTR_LABEL_RANGE },
777 : : { XML_NAMESPACE_TABLE, XML_DATA_CELL_RANGE_ADDRESS, XML_TOK_LABEL_RANGE_ATTR_DATA_RANGE },
778 : : { XML_NAMESPACE_TABLE, XML_ORIENTATION, XML_TOK_LABEL_RANGE_ATTR_ORIENTATION },
779 : : XML_TOKEN_MAP_END
780 : : };
781 : :
782 [ # # ]: 0 : pLabelRangeAttrTokenMap = new SvXMLTokenMap( aLabelRangeAttrTokenMap );
783 : : } // if( !pLabelRangeAttrTokenMap )
784 : :
785 : 0 : return *pLabelRangeAttrTokenMap;
786 : : }
787 : :
788 : 4775 : const SvXMLTokenMap& ScXMLImport::GetTableElemTokenMap()
789 : : {
790 [ + + ]: 4775 : if( !pTableElemTokenMap )
791 : : {
792 : : static SvXMLTokenMapEntry aTableTokenMap[] =
793 : : {
794 : : { XML_NAMESPACE_TABLE, XML_NAMED_EXPRESSIONS, XML_TOK_TABLE_NAMED_EXPRESSIONS },
795 : : { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN_GROUP, XML_TOK_TABLE_COL_GROUP },
796 : : { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_COLUMNS, XML_TOK_TABLE_HEADER_COLS },
797 : : { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLS },
798 : : { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COL },
799 : : { XML_NAMESPACE_TABLE, XML_TABLE_PROTECTION, XML_TOK_TABLE_PROTECTION },
800 : : { XML_NAMESPACE_TABLE, XML_TABLE_ROW_GROUP, XML_TOK_TABLE_ROW_GROUP },
801 : : { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_HEADER_ROWS },
802 : : { XML_NAMESPACE_TABLE, XML_TABLE_ROWS, XML_TOK_TABLE_ROWS },
803 : : { XML_NAMESPACE_TABLE, XML_TABLE_ROW, XML_TOK_TABLE_ROW },
804 : : { XML_NAMESPACE_TABLE, XML_TABLE_SOURCE, XML_TOK_TABLE_SOURCE },
805 : : { XML_NAMESPACE_TABLE, XML_SCENARIO, XML_TOK_TABLE_SCENARIO },
806 : : { XML_NAMESPACE_TABLE, XML_SHAPES, XML_TOK_TABLE_SHAPES },
807 : : { XML_NAMESPACE_OFFICE, XML_FORMS, XML_TOK_TABLE_FORMS },
808 : : { XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, XML_TOK_TABLE_EVENT_LISTENERS },
809 : : { XML_NAMESPACE_OFFICE_EXT, XML_EVENT_LISTENERS, XML_TOK_TABLE_EVENT_LISTENERS_EXT },
810 : : { XML_NAMESPACE_CALC_EXT, XML_CONDITIONAL_FORMATS, XML_TOK_TABLE_CONDFORMATS },
811 : : XML_TOKEN_MAP_END
812 : : };
813 : :
814 [ + - ]: 93 : pTableElemTokenMap = new SvXMLTokenMap( aTableTokenMap );
815 : : } // if( !pTableElemTokenMap )
816 : :
817 : 4775 : return *pTableElemTokenMap;
818 : : }
819 : :
820 : 0 : const SvXMLTokenMap& ScXMLImport::GetTableProtectionAttrTokenMap()
821 : : {
822 [ # # ]: 0 : if (!pTableProtectionElemTokenMap)
823 : : {
824 : : static SvXMLTokenMapEntry aTableProtectionTokenMap[] =
825 : : {
826 : : { XML_NAMESPACE_TABLE, XML_SELECT_PROTECTED_CELLS, XML_TOK_TABLE_SELECT_PROTECTED_CELLS },
827 : : { XML_NAMESPACE_TABLE, XML_SELECT_UNPROTECTED_CELLS, XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS },
828 : : XML_TOKEN_MAP_END
829 : : };
830 [ # # ]: 0 : pTableProtectionElemTokenMap = new SvXMLTokenMap(aTableProtectionTokenMap);
831 : : }
832 : :
833 : 0 : return *pTableProtectionElemTokenMap;
834 : : }
835 : :
836 : 0 : const SvXMLTokenMap& ScXMLImport::GetTableRowsElemTokenMap()
837 : : {
838 [ # # ]: 0 : if( !pTableRowsElemTokenMap )
839 : : {
840 : : static SvXMLTokenMapEntry aTableRowsElemTokenMap[] =
841 : : {
842 : : { XML_NAMESPACE_TABLE, XML_TABLE_ROW_GROUP, XML_TOK_TABLE_ROWS_ROW_GROUP },
843 : : { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_ROWS_HEADER_ROWS },
844 : : { XML_NAMESPACE_TABLE, XML_TABLE_ROWS, XML_TOK_TABLE_ROWS_ROWS },
845 : : { XML_NAMESPACE_TABLE, XML_TABLE_ROW, XML_TOK_TABLE_ROWS_ROW },
846 : : XML_TOKEN_MAP_END
847 : : };
848 : :
849 [ # # ]: 0 : pTableRowsElemTokenMap = new SvXMLTokenMap( aTableRowsElemTokenMap );
850 : : } // if( !pTableRowsElemTokenMap )
851 : :
852 : 0 : return *pTableRowsElemTokenMap;
853 : : }
854 : :
855 : 0 : const SvXMLTokenMap& ScXMLImport::GetTableColsElemTokenMap()
856 : : {
857 [ # # ]: 0 : if( !pTableColsElemTokenMap )
858 : : {
859 : : static SvXMLTokenMapEntry aTableColsElemTokenMap[] =
860 : : {
861 : : { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN_GROUP, XML_TOK_TABLE_COLS_COL_GROUP },
862 : : { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_COLUMNS, XML_TOK_TABLE_COLS_HEADER_COLS },
863 : : { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLS_COLS },
864 : : { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COLS_COL },
865 : : XML_TOKEN_MAP_END
866 : : };
867 : :
868 [ # # ]: 0 : pTableColsElemTokenMap = new SvXMLTokenMap( aTableColsElemTokenMap );
869 : : } // if( !pTableColsElemTokenMap )
870 : :
871 : 0 : return *pTableColsElemTokenMap;
872 : : }
873 : :
874 : 224 : const SvXMLTokenMap& ScXMLImport::GetTableAttrTokenMap()
875 : : {
876 [ + + ]: 224 : if( !pTableAttrTokenMap )
877 : : {
878 : : static SvXMLTokenMapEntry aTableAttrTokenMap[] =
879 : : {
880 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_TABLE_NAME },
881 : : { XML_NAMESPACE_TABLE, XML_STYLE_NAME, XML_TOK_TABLE_STYLE_NAME },
882 : : { XML_NAMESPACE_TABLE, XML_PROTECTED, XML_TOK_TABLE_PROTECTED },
883 : : { XML_NAMESPACE_TABLE, XML_PRINT_RANGES, XML_TOK_TABLE_PRINT_RANGES },
884 : : { XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, XML_TOK_TABLE_PASSWORD },
885 : : { XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM, XML_TOK_TABLE_PASSHASH },
886 : : { XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM_2, XML_TOK_TABLE_PASSHASH_2 },
887 : : { XML_NAMESPACE_TABLE, XML_PRINT, XML_TOK_TABLE_PRINT },
888 : : XML_TOKEN_MAP_END
889 : : };
890 : :
891 [ + - ]: 93 : pTableAttrTokenMap = new SvXMLTokenMap( aTableAttrTokenMap );
892 : : } // if( !pTableAttrTokenMap )
893 : :
894 : 224 : return *pTableAttrTokenMap;
895 : : }
896 : :
897 : 0 : const SvXMLTokenMap& ScXMLImport::GetTableScenarioAttrTokenMap()
898 : : {
899 [ # # ]: 0 : if( !pTableScenarioAttrTokenMap )
900 : : {
901 : : static SvXMLTokenMapEntry aTableScenarioAttrTokenMap[] =
902 : : {
903 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_BORDER, XML_TOK_TABLE_SCENARIO_ATTR_DISPLAY_BORDER },
904 : : { XML_NAMESPACE_TABLE, XML_BORDER_COLOR, XML_TOK_TABLE_SCENARIO_ATTR_BORDER_COLOR },
905 : : { XML_NAMESPACE_TABLE, XML_COPY_BACK, XML_TOK_TABLE_SCENARIO_ATTR_COPY_BACK },
906 : : { XML_NAMESPACE_TABLE, XML_COPY_STYLES, XML_TOK_TABLE_SCENARIO_ATTR_COPY_STYLES },
907 : : { XML_NAMESPACE_TABLE, XML_COPY_FORMULAS, XML_TOK_TABLE_SCENARIO_ATTR_COPY_FORMULAS },
908 : : { XML_NAMESPACE_TABLE, XML_IS_ACTIVE, XML_TOK_TABLE_SCENARIO_ATTR_IS_ACTIVE },
909 : : { XML_NAMESPACE_TABLE, XML_SCENARIO_RANGES, XML_TOK_TABLE_SCENARIO_ATTR_SCENARIO_RANGES },
910 : : { XML_NAMESPACE_TABLE, XML_COMMENT, XML_TOK_TABLE_SCENARIO_ATTR_COMMENT },
911 : : { XML_NAMESPACE_TABLE, XML_PROTECTED, XML_TOK_TABLE_SCENARIO_ATTR_PROTECTED },
912 : : XML_TOKEN_MAP_END
913 : : };
914 : :
915 [ # # ]: 0 : pTableScenarioAttrTokenMap = new SvXMLTokenMap( aTableScenarioAttrTokenMap );
916 : : } // if( !pTableScenarioAttrTokenMap )
917 : :
918 : 0 : return *pTableScenarioAttrTokenMap;
919 : : }
920 : :
921 : 329 : const SvXMLTokenMap& ScXMLImport::GetTableColAttrTokenMap()
922 : : {
923 [ + + ]: 329 : if( !pTableColAttrTokenMap )
924 : : {
925 : : static SvXMLTokenMapEntry aTableColAttrTokenMap[] =
926 : : {
927 : : { XML_NAMESPACE_TABLE, XML_STYLE_NAME, XML_TOK_TABLE_COL_ATTR_STYLE_NAME },
928 : : { XML_NAMESPACE_TABLE, XML_NUMBER_COLUMNS_REPEATED, XML_TOK_TABLE_COL_ATTR_REPEATED },
929 : : { XML_NAMESPACE_TABLE, XML_VISIBILITY, XML_TOK_TABLE_COL_ATTR_VISIBILITY },
930 : : { XML_NAMESPACE_TABLE, XML_DEFAULT_CELL_STYLE_NAME, XML_TOK_TABLE_COL_ATTR_DEFAULT_CELL_STYLE_NAME },
931 : : XML_TOKEN_MAP_END
932 : : };
933 : :
934 [ + - ]: 93 : pTableColAttrTokenMap = new SvXMLTokenMap( aTableColAttrTokenMap );
935 : : } // if( !pTableColAttrTokenMap )
936 : :
937 : 329 : return *pTableColAttrTokenMap;
938 : : }
939 : :
940 : 10481 : const SvXMLTokenMap& ScXMLImport::GetTableRowElemTokenMap()
941 : : {
942 [ + + ]: 10481 : if( !pTableRowElemTokenMap )
943 : : {
944 : : static SvXMLTokenMapEntry aTableRowTokenMap[] =
945 : : {
946 : : { XML_NAMESPACE_TABLE, XML_TABLE_CELL, XML_TOK_TABLE_ROW_CELL },
947 : : { XML_NAMESPACE_TABLE, XML_COVERED_TABLE_CELL, XML_TOK_TABLE_ROW_COVERED_CELL },
948 : : XML_TOKEN_MAP_END
949 : : };
950 : :
951 [ + - ]: 93 : pTableRowElemTokenMap = new SvXMLTokenMap( aTableRowTokenMap );
952 : : } // if( !pTableRowElemTokenMap )
953 : :
954 : 10481 : return *pTableRowElemTokenMap;
955 : : }
956 : :
957 : 4404 : const SvXMLTokenMap& ScXMLImport::GetTableRowAttrTokenMap()
958 : : {
959 [ + + ]: 4404 : if( !pTableRowAttrTokenMap )
960 : : {
961 : : static SvXMLTokenMapEntry aTableRowAttrTokenMap[] =
962 : : {
963 : : { XML_NAMESPACE_TABLE, XML_STYLE_NAME, XML_TOK_TABLE_ROW_ATTR_STYLE_NAME },
964 : : { XML_NAMESPACE_TABLE, XML_VISIBILITY, XML_TOK_TABLE_ROW_ATTR_VISIBILITY },
965 : : { XML_NAMESPACE_TABLE, XML_NUMBER_ROWS_REPEATED, XML_TOK_TABLE_ROW_ATTR_REPEATED },
966 : : { XML_NAMESPACE_TABLE, XML_DEFAULT_CELL_STYLE_NAME, XML_TOK_TABLE_ROW_ATTR_DEFAULT_CELL_STYLE_NAME },
967 : : // { XML_NAMESPACE_TABLE, XML_USE_OPTIMAL_HEIGHT, XML_TOK_TABLE_ROW_ATTR_USE_OPTIMAL_HEIGHT },
968 : : XML_TOKEN_MAP_END
969 : : };
970 : :
971 [ + - ]: 93 : pTableRowAttrTokenMap = new SvXMLTokenMap( aTableRowAttrTokenMap );
972 : : } // if( !pTableRowAttrTokenMap )
973 : :
974 : 4404 : return *pTableRowAttrTokenMap;
975 : : }
976 : :
977 : 5940 : const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTokenMap()
978 : : {
979 [ + + ]: 5940 : if( !pTableRowCellElemTokenMap )
980 : : {
981 : : static SvXMLTokenMapEntry aTableRowCellTokenMap[] =
982 : : {
983 : : { XML_NAMESPACE_TEXT, XML_P, XML_TOK_TABLE_ROW_CELL_P },
984 : : { XML_NAMESPACE_TABLE, XML_SUB_TABLE, XML_TOK_TABLE_ROW_CELL_TABLE },
985 : : { XML_NAMESPACE_OFFICE, XML_ANNOTATION, XML_TOK_TABLE_ROW_CELL_ANNOTATION },
986 : : { XML_NAMESPACE_TABLE, XML_DETECTIVE, XML_TOK_TABLE_ROW_CELL_DETECTIVE },
987 : : { XML_NAMESPACE_TABLE, XML_CELL_RANGE_SOURCE, XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE },
988 : : XML_TOKEN_MAP_END
989 : : };
990 : :
991 [ + - ]: 81 : pTableRowCellElemTokenMap = new SvXMLTokenMap( aTableRowCellTokenMap );
992 : : } // if( !pTableRowCellElemTokenMap )
993 : :
994 : 5940 : return *pTableRowCellElemTokenMap;
995 : : }
996 : :
997 : 8 : const SvXMLTokenMap& ScXMLImport::GetTableAnnotationAttrTokenMap()
998 : : {
999 [ + - ]: 8 : if( !pTableAnnotationAttrTokenMap )
1000 : : {
1001 : : static SvXMLTokenMapEntry aTableAnnotationAttrTokenMap[] =
1002 : : {
1003 : : { XML_NAMESPACE_OFFICE, XML_AUTHOR, XML_TOK_TABLE_ANNOTATION_ATTR_AUTHOR },
1004 : : { XML_NAMESPACE_OFFICE, XML_CREATE_DATE, XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE },
1005 : : { XML_NAMESPACE_OFFICE, XML_CREATE_DATE_STRING, XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE_STRING },
1006 : : { XML_NAMESPACE_OFFICE, XML_DISPLAY, XML_TOK_TABLE_ANNOTATION_ATTR_DISPLAY },
1007 : : { XML_NAMESPACE_SVG, XML_X, XML_TOK_TABLE_ANNOTATION_ATTR_X },
1008 : : { XML_NAMESPACE_SVG, XML_Y, XML_TOK_TABLE_ANNOTATION_ATTR_Y },
1009 : : XML_TOKEN_MAP_END
1010 : : };
1011 : :
1012 [ + - ]: 8 : pTableAnnotationAttrTokenMap = new SvXMLTokenMap( aTableAnnotationAttrTokenMap );
1013 : : } // if( !pTableAnnotationAttrTokenMap )
1014 : :
1015 : 8 : return *pTableAnnotationAttrTokenMap;
1016 : : }
1017 : :
1018 : 0 : const SvXMLTokenMap& ScXMLImport::GetDetectiveElemTokenMap()
1019 : : {
1020 [ # # ]: 0 : if( !pDetectiveElemTokenMap )
1021 : : {
1022 : : static SvXMLTokenMapEntry aDetectiveElemTokenMap[]=
1023 : : {
1024 : : { XML_NAMESPACE_TABLE, XML_HIGHLIGHTED_RANGE, XML_TOK_DETECTIVE_ELEM_HIGHLIGHTED },
1025 : : { XML_NAMESPACE_TABLE, XML_OPERATION, XML_TOK_DETECTIVE_ELEM_OPERATION },
1026 : : XML_TOKEN_MAP_END
1027 : : };
1028 : :
1029 [ # # ]: 0 : pDetectiveElemTokenMap = new SvXMLTokenMap( aDetectiveElemTokenMap );
1030 : : } // if( !pDetectiveElemTokenMap )
1031 : :
1032 : 0 : return *pDetectiveElemTokenMap;
1033 : : }
1034 : :
1035 : 0 : const SvXMLTokenMap& ScXMLImport::GetDetectiveHighlightedAttrTokenMap()
1036 : : {
1037 [ # # ]: 0 : if( !pDetectiveHighlightedAttrTokenMap )
1038 : : {
1039 : : static SvXMLTokenMapEntry aDetectiveHighlightedAttrTokenMap[]=
1040 : : {
1041 : : { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CELL_RANGE },
1042 : : { XML_NAMESPACE_TABLE, XML_DIRECTION, XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_DIRECTION },
1043 : : { XML_NAMESPACE_TABLE, XML_CONTAINS_ERROR, XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CONTAINS_ERROR },
1044 : : { XML_NAMESPACE_TABLE, XML_MARKED_INVALID, XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_MARKED_INVALID },
1045 : : XML_TOKEN_MAP_END
1046 : : };
1047 : :
1048 [ # # ]: 0 : pDetectiveHighlightedAttrTokenMap = new SvXMLTokenMap( aDetectiveHighlightedAttrTokenMap );
1049 : : } // if( !pDetectiveHighlightedAttrTokenMap )
1050 : :
1051 : 0 : return *pDetectiveHighlightedAttrTokenMap;
1052 : : }
1053 : :
1054 : 0 : const SvXMLTokenMap& ScXMLImport::GetDetectiveOperationAttrTokenMap()
1055 : : {
1056 [ # # ]: 0 : if( !pDetectiveOperationAttrTokenMap )
1057 : : {
1058 : : static SvXMLTokenMapEntry aDetectiveOperationAttrTokenMap[]=
1059 : : {
1060 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_DETECTIVE_OPERATION_ATTR_NAME },
1061 : : { XML_NAMESPACE_TABLE, XML_INDEX, XML_TOK_DETECTIVE_OPERATION_ATTR_INDEX },
1062 : : XML_TOKEN_MAP_END
1063 : : };
1064 : :
1065 [ # # ]: 0 : pDetectiveOperationAttrTokenMap = new SvXMLTokenMap( aDetectiveOperationAttrTokenMap );
1066 : : } // if( !pDetectiveOperationAttrTokenMap )
1067 : :
1068 : 0 : return *pDetectiveOperationAttrTokenMap;
1069 : : }
1070 : :
1071 : 0 : const SvXMLTokenMap& ScXMLImport::GetTableCellRangeSourceAttrTokenMap()
1072 : : {
1073 [ # # ]: 0 : if( !pTableCellRangeSourceAttrTokenMap )
1074 : : {
1075 : : static SvXMLTokenMapEntry aTableCellRangeSourceAttrTokenMap[] =
1076 : : {
1077 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_NAME },
1078 : : { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_HREF },
1079 : : { XML_NAMESPACE_TABLE, XML_FILTER_NAME, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_NAME },
1080 : : { XML_NAMESPACE_TABLE, XML_FILTER_OPTIONS, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_OPTIONS },
1081 : : { XML_NAMESPACE_TABLE, XML_LAST_COLUMN_SPANNED, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_COLUMN },
1082 : : { XML_NAMESPACE_TABLE, XML_LAST_ROW_SPANNED, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_ROW },
1083 : : { XML_NAMESPACE_TABLE, XML_REFRESH_DELAY, XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_REFRESH_DELAY },
1084 : : XML_TOKEN_MAP_END
1085 : : };
1086 : :
1087 [ # # ]: 0 : pTableCellRangeSourceAttrTokenMap = new SvXMLTokenMap( aTableCellRangeSourceAttrTokenMap );
1088 : : } // if( !pTableCellRangeSourceAttrTokenMap )
1089 : :
1090 : 0 : return *pTableCellRangeSourceAttrTokenMap;
1091 : : }
1092 : :
1093 : 74 : const SvXMLTokenMap& ScXMLImport::GetNamedExpressionsElemTokenMap()
1094 : : {
1095 [ + + ]: 74 : if( !pNamedExpressionsElemTokenMap )
1096 : : {
1097 : : static SvXMLTokenMapEntry aNamedExpressionsTokenMap[] =
1098 : : {
1099 : : { XML_NAMESPACE_TABLE, XML_NAMED_RANGE, XML_TOK_NAMED_EXPRESSIONS_NAMED_RANGE },
1100 : : { XML_NAMESPACE_TABLE, XML_NAMED_EXPRESSION, XML_TOK_NAMED_EXPRESSIONS_NAMED_EXPRESSION },
1101 : : XML_TOKEN_MAP_END
1102 : : };
1103 : :
1104 [ + - ]: 17 : pNamedExpressionsElemTokenMap = new SvXMLTokenMap( aNamedExpressionsTokenMap );
1105 : : } // if( !pNamedExpressionsElemTokenMap )
1106 : :
1107 : 74 : return *pNamedExpressionsElemTokenMap;
1108 : : }
1109 : :
1110 : 68 : const SvXMLTokenMap& ScXMLImport::GetNamedRangeAttrTokenMap()
1111 : : {
1112 [ + + ]: 68 : if( !pNamedRangeAttrTokenMap )
1113 : : {
1114 : : static SvXMLTokenMapEntry aNamedRangeAttrTokenMap[] =
1115 : : {
1116 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_NAMED_RANGE_ATTR_NAME },
1117 : : { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_NAMED_RANGE_ATTR_CELL_RANGE_ADDRESS },
1118 : : { XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, XML_TOK_NAMED_RANGE_ATTR_BASE_CELL_ADDRESS },
1119 : : { XML_NAMESPACE_TABLE, XML_RANGE_USABLE_AS, XML_TOK_NAMED_RANGE_ATTR_RANGE_USABLE_AS },
1120 : : XML_TOKEN_MAP_END
1121 : : };
1122 : :
1123 [ + - ]: 17 : pNamedRangeAttrTokenMap = new SvXMLTokenMap( aNamedRangeAttrTokenMap );
1124 : : } // if( !pNamedRangeAttrTokenMap )
1125 : :
1126 : 68 : return *pNamedRangeAttrTokenMap;
1127 : : }
1128 : :
1129 : 6 : const SvXMLTokenMap& ScXMLImport::GetNamedExpressionAttrTokenMap()
1130 : : {
1131 [ + + ]: 6 : if( !pNamedExpressionAttrTokenMap )
1132 : : {
1133 : : static SvXMLTokenMapEntry aNamedExpressionAttrTokenMap[] =
1134 : : {
1135 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_NAMED_EXPRESSION_ATTR_NAME },
1136 : : { XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, XML_TOK_NAMED_EXPRESSION_ATTR_BASE_CELL_ADDRESS },
1137 : : { XML_NAMESPACE_TABLE, XML_EXPRESSION, XML_TOK_NAMED_EXPRESSION_ATTR_EXPRESSION },
1138 : : XML_TOKEN_MAP_END
1139 : : };
1140 : :
1141 [ + - ]: 3 : pNamedExpressionAttrTokenMap = new SvXMLTokenMap( aNamedExpressionAttrTokenMap );
1142 : : } // if( !pNamedExpressionAttrTokenMap )
1143 : :
1144 : 6 : return *pNamedExpressionAttrTokenMap;
1145 : : }
1146 : :
1147 : 26 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangesElemTokenMap()
1148 : : {
1149 [ + + ]: 26 : if( !pDatabaseRangesElemTokenMap )
1150 : : {
1151 : : static SvXMLTokenMapEntry aDatabaseRangesTokenMap[] =
1152 : : {
1153 : : { XML_NAMESPACE_TABLE, XML_DATABASE_RANGE, XML_TOK_DATABASE_RANGE },
1154 : : XML_TOKEN_MAP_END
1155 : : };
1156 : :
1157 [ + - ]: 8 : pDatabaseRangesElemTokenMap = new SvXMLTokenMap( aDatabaseRangesTokenMap );
1158 : : } // if( !pDatabaseRangesElemTokenMap )
1159 : :
1160 : 26 : return *pDatabaseRangesElemTokenMap;
1161 : : }
1162 : :
1163 : 9 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeElemTokenMap()
1164 : : {
1165 [ + + ]: 9 : if( !pDatabaseRangeElemTokenMap )
1166 : : {
1167 : : static SvXMLTokenMapEntry aDatabaseRangeTokenMap[] =
1168 : : {
1169 : : { XML_NAMESPACE_TABLE, XML_DATABASE_SOURCE_SQL, XML_TOK_DATABASE_RANGE_SOURCE_SQL },
1170 : : { XML_NAMESPACE_TABLE, XML_DATABASE_SOURCE_TABLE, XML_TOK_DATABASE_RANGE_SOURCE_TABLE },
1171 : : { XML_NAMESPACE_TABLE, XML_DATABASE_SOURCE_QUERY, XML_TOK_DATABASE_RANGE_SOURCE_QUERY },
1172 : : { XML_NAMESPACE_TABLE, XML_FILTER, XML_TOK_FILTER },
1173 : : { XML_NAMESPACE_TABLE, XML_SORT, XML_TOK_SORT },
1174 : : { XML_NAMESPACE_TABLE, XML_SUBTOTAL_RULES, XML_TOK_DATABASE_RANGE_SUBTOTAL_RULES },
1175 : : XML_TOKEN_MAP_END
1176 : : };
1177 : :
1178 [ + - ]: 5 : pDatabaseRangeElemTokenMap = new SvXMLTokenMap( aDatabaseRangeTokenMap );
1179 : : } // if( !pDatabaseRangeElemTokenMap )
1180 : :
1181 : 9 : return *pDatabaseRangeElemTokenMap;
1182 : : }
1183 : :
1184 : 26 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeAttrTokenMap()
1185 : : {
1186 [ + + ]: 26 : if( !pDatabaseRangeAttrTokenMap )
1187 : : {
1188 : : static SvXMLTokenMapEntry aDatabaseRangeAttrTokenMap[] =
1189 : : {
1190 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_DATABASE_RANGE_ATTR_NAME },
1191 : : { XML_NAMESPACE_TABLE, XML_IS_SELECTION, XML_TOK_DATABASE_RANGE_ATTR_IS_SELECTION },
1192 : : { XML_NAMESPACE_TABLE, XML_ON_UPDATE_KEEP_STYLES, XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_STYLES },
1193 : : { XML_NAMESPACE_TABLE, XML_ON_UPDATE_KEEP_SIZE, XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_SIZE },
1194 : : { XML_NAMESPACE_TABLE, XML_HAS_PERSISTENT_DATA, XML_TOK_DATABASE_RANGE_ATTR_HAS_PERSISTENT_DATA },
1195 : : { XML_NAMESPACE_TABLE, XML_ORIENTATION, XML_TOK_DATABASE_RANGE_ATTR_ORIENTATION },
1196 : : { XML_NAMESPACE_TABLE, XML_CONTAINS_HEADER, XML_TOK_DATABASE_RANGE_ATTR_CONTAINS_HEADER },
1197 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_FILTER_BUTTONS, XML_TOK_DATABASE_RANGE_ATTR_DISPLAY_FILTER_BUTTONS },
1198 : : { XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, XML_TOK_DATABASE_RANGE_ATTR_TARGET_RANGE_ADDRESS },
1199 : : { XML_NAMESPACE_TABLE, XML_REFRESH_DELAY, XML_TOK_DATABASE_RANGE_ATTR_REFRESH_DELAY },
1200 : : XML_TOKEN_MAP_END
1201 : : };
1202 : :
1203 [ + - ]: 8 : pDatabaseRangeAttrTokenMap = new SvXMLTokenMap( aDatabaseRangeAttrTokenMap );
1204 : : } // if( !pDatabaseRangeAttrTokenMap )
1205 : :
1206 : 26 : return *pDatabaseRangeAttrTokenMap;
1207 : : }
1208 : :
1209 : 0 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeSourceSQLAttrTokenMap()
1210 : : {
1211 [ # # ]: 0 : if( !pDatabaseRangeSourceSQLAttrTokenMap )
1212 : : {
1213 : : static SvXMLTokenMapEntry aDatabaseRangeSourceSQLAttrTokenMap[] =
1214 : : {
1215 : : { XML_NAMESPACE_TABLE, XML_DATABASE_NAME, XML_TOK_SOURCE_SQL_ATTR_DATABASE_NAME },
1216 : : { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_SOURCE_SQL_ATTR_HREF },
1217 : : { XML_NAMESPACE_TABLE, XML_CONNECTION_RESOURCE, XML_TOK_SOURCE_SQL_ATTR_CONNECTION_RESOURCE},
1218 : : { XML_NAMESPACE_TABLE, XML_SQL_STATEMENT, XML_TOK_SOURCE_SQL_ATTR_SQL_STATEMENT },
1219 : : { XML_NAMESPACE_TABLE, XML_PARSE_SQL_STATEMENT, XML_TOK_SOURCE_SQL_ATTR_PARSE_SQL_STATEMENT },
1220 : : XML_TOKEN_MAP_END
1221 : : };
1222 : :
1223 [ # # ]: 0 : pDatabaseRangeSourceSQLAttrTokenMap = new SvXMLTokenMap( aDatabaseRangeSourceSQLAttrTokenMap );
1224 : : } // if( !pDatabaseRangeSourceSQLAttrTokenMap )
1225 : :
1226 : 0 : return *pDatabaseRangeSourceSQLAttrTokenMap;
1227 : : }
1228 : :
1229 : 0 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeSourceTableAttrTokenMap()
1230 : : {
1231 [ # # ]: 0 : if( !pDatabaseRangeSourceTableAttrTokenMap )
1232 : : {
1233 : : static SvXMLTokenMapEntry aDatabaseRangeSourceTableAttrTokenMap[] =
1234 : : {
1235 : : { XML_NAMESPACE_TABLE, XML_DATABASE_NAME, XML_TOK_SOURCE_TABLE_ATTR_DATABASE_NAME },
1236 : : { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_SOURCE_TABLE_ATTR_HREF },
1237 : : { XML_NAMESPACE_TABLE, XML_CONNECTION_RESOURCE, XML_TOK_SOURCE_TABLE_ATTR_CONNECTION_RESOURCE },
1238 : : { XML_NAMESPACE_TABLE, XML_TABLE_NAME, XML_TOK_SOURCE_TABLE_ATTR_TABLE_NAME },
1239 : : XML_TOKEN_MAP_END
1240 : : };
1241 : :
1242 [ # # ]: 0 : pDatabaseRangeSourceTableAttrTokenMap = new SvXMLTokenMap( aDatabaseRangeSourceTableAttrTokenMap );
1243 : : } // if( !pDatabaseRangeSourceTableAttrTokenMap )
1244 : :
1245 : 0 : return *pDatabaseRangeSourceTableAttrTokenMap;
1246 : : }
1247 : :
1248 : 0 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeSourceQueryAttrTokenMap()
1249 : : {
1250 [ # # ]: 0 : if( !pDatabaseRangeSourceQueryAttrTokenMap )
1251 : : {
1252 : : static SvXMLTokenMapEntry aDatabaseRangeSourceQueryAttrTokenMap[] =
1253 : : {
1254 : : { XML_NAMESPACE_TABLE, XML_DATABASE_NAME, XML_TOK_SOURCE_QUERY_ATTR_DATABASE_NAME },
1255 : : { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_SOURCE_QUERY_ATTR_HREF },
1256 : : { XML_NAMESPACE_TABLE, XML_CONNECTION_RESOURCE, XML_TOK_SOURCE_QUERY_ATTR_CONNECTION_RESOURCE },
1257 : : { XML_NAMESPACE_TABLE, XML_QUERY_NAME, XML_TOK_SOURCE_QUERY_ATTR_QUERY_NAME },
1258 : : XML_TOKEN_MAP_END
1259 : : };
1260 : :
1261 [ # # ]: 0 : pDatabaseRangeSourceQueryAttrTokenMap = new SvXMLTokenMap( aDatabaseRangeSourceQueryAttrTokenMap );
1262 : : } // if( !pDatabaseRangeSourceQueryAttrTokenMap )
1263 : :
1264 : 0 : return *pDatabaseRangeSourceQueryAttrTokenMap;
1265 : : }
1266 : :
1267 : 26 : const SvXMLTokenMap& ScXMLImport::GetFilterElemTokenMap()
1268 : : {
1269 [ + + ]: 26 : if( !pFilterElemTokenMap )
1270 : : {
1271 : : static SvXMLTokenMapEntry aFilterTokenMap[] =
1272 : : {
1273 : : { XML_NAMESPACE_TABLE, XML_FILTER_AND, XML_TOK_FILTER_AND },
1274 : : { XML_NAMESPACE_TABLE, XML_FILTER_OR, XML_TOK_FILTER_OR },
1275 : : { XML_NAMESPACE_TABLE, XML_FILTER_CONDITION, XML_TOK_FILTER_CONDITION },
1276 : : XML_TOKEN_MAP_END
1277 : : };
1278 : :
1279 [ + - ]: 7 : pFilterElemTokenMap = new SvXMLTokenMap( aFilterTokenMap );
1280 : : } // if( !pFilterElemTokenMap )
1281 : :
1282 : 26 : return *pFilterElemTokenMap;
1283 : : }
1284 : :
1285 : 11 : const SvXMLTokenMap& ScXMLImport::GetFilterAttrTokenMap()
1286 : : {
1287 [ + + ]: 11 : if( !pFilterAttrTokenMap )
1288 : : {
1289 : : static SvXMLTokenMapEntry aFilterAttrTokenMap[] =
1290 : : {
1291 : : { XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, XML_TOK_FILTER_ATTR_TARGET_RANGE_ADDRESS },
1292 : : { XML_NAMESPACE_TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS, XML_TOK_FILTER_ATTR_CONDITION_SOURCE_RANGE_ADDRESS },
1293 : : { XML_NAMESPACE_TABLE, XML_CONDITION_SOURCE, XML_TOK_FILTER_ATTR_CONDITION_SOURCE },
1294 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_DUPLICATES, XML_TOK_FILTER_ATTR_DISPLAY_DUPLICATES },
1295 : : XML_TOKEN_MAP_END
1296 : : };
1297 : :
1298 [ + - ]: 7 : pFilterAttrTokenMap = new SvXMLTokenMap( aFilterAttrTokenMap );
1299 : : } // if( !pFilterAttrTokenMap )
1300 : :
1301 : 11 : return *pFilterAttrTokenMap;
1302 : : }
1303 : :
1304 : 16 : const SvXMLTokenMap& ScXMLImport::GetFilterConditionElemTokenMap()
1305 : : {
1306 [ + + ]: 16 : if( !pFilterConditionElemTokenMap )
1307 : : {
1308 : : static SvXMLTokenMapEntry aTokenMap[] =
1309 : : {
1310 : : { XML_NAMESPACE_TABLE, XML_FILTER_SET_ITEM, XML_TOK_CONDITION_FILTER_SET_ITEM },
1311 : : XML_TOKEN_MAP_END
1312 : : };
1313 : :
1314 [ + - ]: 2 : pFilterConditionElemTokenMap = new SvXMLTokenMap( aTokenMap );
1315 : : }
1316 : :
1317 : 16 : return *pFilterConditionElemTokenMap;
1318 : : }
1319 : :
1320 : 15 : const SvXMLTokenMap& ScXMLImport::GetFilterConditionAttrTokenMap()
1321 : : {
1322 [ + + ]: 15 : if( !pFilterConditionAttrTokenMap )
1323 : : {
1324 : : static SvXMLTokenMapEntry aFilterConditionAttrTokenMap[] =
1325 : : {
1326 : : { XML_NAMESPACE_TABLE, XML_FIELD_NUMBER, XML_TOK_CONDITION_ATTR_FIELD_NUMBER },
1327 : : { XML_NAMESPACE_TABLE, XML_CASE_SENSITIVE, XML_TOK_CONDITION_ATTR_CASE_SENSITIVE },
1328 : : { XML_NAMESPACE_TABLE, XML_DATA_TYPE, XML_TOK_CONDITION_ATTR_DATA_TYPE },
1329 : : { XML_NAMESPACE_TABLE, XML_VALUE, XML_TOK_CONDITION_ATTR_VALUE },
1330 : : { XML_NAMESPACE_TABLE, XML_OPERATOR, XML_TOK_CONDITION_ATTR_OPERATOR },
1331 : : XML_TOKEN_MAP_END
1332 : : };
1333 : :
1334 [ + - ]: 7 : pFilterConditionAttrTokenMap = new SvXMLTokenMap( aFilterConditionAttrTokenMap );
1335 : : } // if( !pFilterConditionAttrTokenMap )
1336 : :
1337 : 15 : return *pFilterConditionAttrTokenMap;
1338 : : }
1339 : :
1340 : 16 : const SvXMLTokenMap& ScXMLImport::GetFilterSetItemAttrTokenMap()
1341 : : {
1342 [ + + ]: 16 : if( !pFilterSetItemAttrTokenMap )
1343 : : {
1344 : : static SvXMLTokenMapEntry aTokenMap[] =
1345 : : {
1346 : : { XML_NAMESPACE_TABLE, XML_VALUE, XML_TOK_FILTER_SET_ITEM_ATTR_VALUE },
1347 : : XML_TOKEN_MAP_END
1348 : : };
1349 : :
1350 [ + - ]: 2 : pFilterSetItemAttrTokenMap = new SvXMLTokenMap( aTokenMap );
1351 : : }
1352 : :
1353 : 16 : return *pFilterSetItemAttrTokenMap;
1354 : : }
1355 : :
1356 : 0 : const SvXMLTokenMap& ScXMLImport::GetSortElemTokenMap()
1357 : : {
1358 [ # # ]: 0 : if( !pSortElemTokenMap )
1359 : : {
1360 : : static SvXMLTokenMapEntry aSortTokenMap[] =
1361 : : {
1362 : : { XML_NAMESPACE_TABLE, XML_SORT_BY, XML_TOK_SORT_SORT_BY },
1363 : : XML_TOKEN_MAP_END
1364 : : };
1365 : :
1366 [ # # ]: 0 : pSortElemTokenMap = new SvXMLTokenMap( aSortTokenMap );
1367 : : } // if( !pSortElemTokenMap )
1368 : :
1369 : 0 : return *pSortElemTokenMap;
1370 : : }
1371 : :
1372 : 0 : const SvXMLTokenMap& ScXMLImport::GetSortAttrTokenMap()
1373 : : {
1374 [ # # ]: 0 : if( !pSortAttrTokenMap )
1375 : : {
1376 : : static SvXMLTokenMapEntry aSortAttrTokenMap[] =
1377 : : {
1378 : : { XML_NAMESPACE_TABLE, XML_BIND_STYLES_TO_CONTENT, XML_TOK_SORT_ATTR_BIND_STYLES_TO_CONTENT },
1379 : : { XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, XML_TOK_SORT_ATTR_TARGET_RANGE_ADDRESS },
1380 : : { XML_NAMESPACE_TABLE, XML_CASE_SENSITIVE, XML_TOK_SORT_ATTR_CASE_SENSITIVE },
1381 : : { XML_NAMESPACE_TABLE, XML_LANGUAGE, XML_TOK_SORT_ATTR_LANGUAGE },
1382 : : { XML_NAMESPACE_TABLE, XML_COUNTRY, XML_TOK_SORT_ATTR_COUNTRY },
1383 : : { XML_NAMESPACE_TABLE, XML_ALGORITHM, XML_TOK_SORT_ATTR_ALGORITHM },
1384 : : XML_TOKEN_MAP_END
1385 : : };
1386 : :
1387 [ # # ]: 0 : pSortAttrTokenMap = new SvXMLTokenMap( aSortAttrTokenMap );
1388 : : } // if( !pSortAttrTokenMap )
1389 : :
1390 : 0 : return *pSortAttrTokenMap;
1391 : : }
1392 : :
1393 : 0 : const SvXMLTokenMap& ScXMLImport::GetSortSortByAttrTokenMap()
1394 : : {
1395 [ # # ]: 0 : if( !pSortSortByAttrTokenMap )
1396 : : {
1397 : : static SvXMLTokenMapEntry aSortSortByAttrTokenMap[] =
1398 : : {
1399 : : { XML_NAMESPACE_TABLE, XML_FIELD_NUMBER, XML_TOK_SORT_BY_ATTR_FIELD_NUMBER },
1400 : : { XML_NAMESPACE_TABLE, XML_DATA_TYPE, XML_TOK_SORT_BY_ATTR_DATA_TYPE },
1401 : : { XML_NAMESPACE_TABLE, XML_ORDER, XML_TOK_SORT_BY_ATTR_ORDER },
1402 : : XML_TOKEN_MAP_END
1403 : : };
1404 : :
1405 [ # # ]: 0 : pSortSortByAttrTokenMap = new SvXMLTokenMap( aSortSortByAttrTokenMap );
1406 : : } // if( !pSortSortByAttrTokenMap )
1407 : :
1408 : 0 : return *pSortSortByAttrTokenMap;
1409 : : }
1410 : :
1411 : 0 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeSubTotalRulesElemTokenMap()
1412 : : {
1413 [ # # ]: 0 : if( !pDatabaseRangeSubTotalRulesElemTokenMap )
1414 : : {
1415 : : static SvXMLTokenMapEntry aDatabaseRangeSubTotalRulesTokenMap[] =
1416 : : {
1417 : : { XML_NAMESPACE_TABLE, XML_SORT_GROUPS, XML_TOK_SUBTOTAL_RULES_SORT_GROUPS },
1418 : : { XML_NAMESPACE_TABLE, XML_SUBTOTAL_RULE, XML_TOK_SUBTOTAL_RULES_SUBTOTAL_RULE },
1419 : : XML_TOKEN_MAP_END
1420 : : };
1421 : :
1422 [ # # ]: 0 : pDatabaseRangeSubTotalRulesElemTokenMap = new SvXMLTokenMap( aDatabaseRangeSubTotalRulesTokenMap );
1423 : : } // if( !pDatabaseRangeSubTotalRulesElemTokenMap )
1424 : :
1425 : 0 : return *pDatabaseRangeSubTotalRulesElemTokenMap;
1426 : : }
1427 : :
1428 : 0 : const SvXMLTokenMap& ScXMLImport::GetDatabaseRangeSubTotalRulesAttrTokenMap()
1429 : : {
1430 [ # # ]: 0 : if( !pDatabaseRangeSubTotalRulesAttrTokenMap )
1431 : : {
1432 : : static SvXMLTokenMapEntry aDatabaseRangeSubTotalRulesAttrTokenMap[] =
1433 : : {
1434 : : { XML_NAMESPACE_TABLE, XML_BIND_STYLES_TO_CONTENT, XML_TOK_SUBTOTAL_RULES_ATTR_BIND_STYLES_TO_CONTENT },
1435 : : { XML_NAMESPACE_TABLE, XML_CASE_SENSITIVE, XML_TOK_SUBTOTAL_RULES_ATTR_CASE_SENSITIVE },
1436 : : { XML_NAMESPACE_TABLE, XML_PAGE_BREAKS_ON_GROUP_CHANGE, XML_TOK_SUBTOTAL_RULES_ATTR_PAGE_BREAKS_ON_GROUP_CHANGE },
1437 : : XML_TOKEN_MAP_END
1438 : : };
1439 : :
1440 [ # # ]: 0 : pDatabaseRangeSubTotalRulesAttrTokenMap = new SvXMLTokenMap( aDatabaseRangeSubTotalRulesAttrTokenMap );
1441 : : } // if( !pDatabaseRangeSubTotalRulesAttrTokenMap )
1442 : :
1443 : 0 : return *pDatabaseRangeSubTotalRulesAttrTokenMap;
1444 : : }
1445 : :
1446 : 0 : const SvXMLTokenMap& ScXMLImport::GetSubTotalRulesSortGroupsAttrTokenMap()
1447 : : {
1448 [ # # ]: 0 : if( !pSubTotalRulesSortGroupsAttrTokenMap )
1449 : : {
1450 : : static SvXMLTokenMapEntry aSubTotalRulesSortGroupsAttrTokenMap[] =
1451 : : {
1452 : : { XML_NAMESPACE_TABLE, XML_DATA_TYPE, XML_TOK_SORT_GROUPS_ATTR_DATA_TYPE },
1453 : : { XML_NAMESPACE_TABLE, XML_ORDER, XML_TOK_SORT_GROUPS_ATTR_ORDER },
1454 : : XML_TOKEN_MAP_END
1455 : : };
1456 : :
1457 [ # # ]: 0 : pSubTotalRulesSortGroupsAttrTokenMap = new SvXMLTokenMap( aSubTotalRulesSortGroupsAttrTokenMap );
1458 : : } // if( !pSubTotalRulesSortGroupsAttrTokenMap )
1459 : :
1460 : 0 : return *pSubTotalRulesSortGroupsAttrTokenMap;
1461 : : }
1462 : :
1463 : 0 : const SvXMLTokenMap& ScXMLImport::GetSubTotalRulesSubTotalRuleElemTokenMap()
1464 : : {
1465 [ # # ]: 0 : if( !pSubTotalRulesSubTotalRuleElemTokenMap )
1466 : : {
1467 : : static SvXMLTokenMapEntry aSubTotalRulesSubTotalRuleTokenMap[] =
1468 : : {
1469 : : { XML_NAMESPACE_TABLE, XML_SUBTOTAL_FIELD, XML_TOK_SUBTOTAL_RULE_SUBTOTAL_FIELD },
1470 : : XML_TOKEN_MAP_END
1471 : : };
1472 : :
1473 [ # # ]: 0 : pSubTotalRulesSubTotalRuleElemTokenMap = new SvXMLTokenMap( aSubTotalRulesSubTotalRuleTokenMap );
1474 : : } // if( !pSubTotalRulesSubTotalRuleElemTokenMap )
1475 : :
1476 : 0 : return *pSubTotalRulesSubTotalRuleElemTokenMap;
1477 : : }
1478 : :
1479 : 0 : const SvXMLTokenMap& ScXMLImport::GetSubTotalRulesSubTotalRuleAttrTokenMap()
1480 : : {
1481 [ # # ]: 0 : if( !pSubTotalRulesSubTotalRuleAttrTokenMap )
1482 : : {
1483 : : static SvXMLTokenMapEntry aSubTotalRulesSubTotalRuleAttrTokenMap[] =
1484 : : {
1485 : : { XML_NAMESPACE_TABLE, XML_GROUP_BY_FIELD_NUMBER, XML_TOK_SUBTOTAL_RULE_ATTR_GROUP_BY_FIELD_NUMBER },
1486 : : XML_TOKEN_MAP_END
1487 : : };
1488 : :
1489 [ # # ]: 0 : pSubTotalRulesSubTotalRuleAttrTokenMap = new SvXMLTokenMap( aSubTotalRulesSubTotalRuleAttrTokenMap );
1490 : : } // if( !pSubTotalRulesSubTotalRuleAttrTokenMap )
1491 : :
1492 : 0 : return *pSubTotalRulesSubTotalRuleAttrTokenMap;
1493 : : }
1494 : :
1495 : 0 : const SvXMLTokenMap& ScXMLImport::GetSubTotalRuleSubTotalFieldAttrTokenMap()
1496 : : {
1497 [ # # ]: 0 : if( !pSubTotalRuleSubTotalFieldAttrTokenMap )
1498 : : {
1499 : : static SvXMLTokenMapEntry aSubTotalRuleSubTotalFieldAttrTokenMap[] =
1500 : : {
1501 : : { XML_NAMESPACE_TABLE, XML_FIELD_NUMBER, XML_TOK_SUBTOTAL_FIELD_ATTR_FIELD_NUMBER },
1502 : : { XML_NAMESPACE_TABLE, XML_FUNCTION, XML_TOK_SUBTOTAL_FIELD_ATTR_FUNCTION },
1503 : : XML_TOKEN_MAP_END
1504 : : };
1505 : :
1506 [ # # ]: 0 : pSubTotalRuleSubTotalFieldAttrTokenMap = new SvXMLTokenMap( aSubTotalRuleSubTotalFieldAttrTokenMap );
1507 : : } // if( !pSubTotalRuleSubTotalFieldAttrTokenMap )
1508 : :
1509 : 0 : return *pSubTotalRuleSubTotalFieldAttrTokenMap;
1510 : : }
1511 : :
1512 : 6 : const SvXMLTokenMap& ScXMLImport::GetDataPilotTablesElemTokenMap()
1513 : : {
1514 [ + + ]: 6 : if( !pDataPilotTablesElemTokenMap )
1515 : : {
1516 : : static SvXMLTokenMapEntry aDataPilotTablesElemTokenMap[] =
1517 : : {
1518 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_TABLE, XML_TOK_DATA_PILOT_TABLE },
1519 : : XML_TOKEN_MAP_END
1520 : : };
1521 : :
1522 [ + - ]: 4 : pDataPilotTablesElemTokenMap = new SvXMLTokenMap( aDataPilotTablesElemTokenMap );
1523 : : } // if( !pDataPilotTablesElemTokenMap )
1524 : :
1525 : 6 : return *pDataPilotTablesElemTokenMap;
1526 : : }
1527 : :
1528 : 6 : const SvXMLTokenMap& ScXMLImport::GetDataPilotTableAttrTokenMap()
1529 : : {
1530 [ + + ]: 6 : if( !pDataPilotTableAttrTokenMap )
1531 : : {
1532 : : static SvXMLTokenMapEntry aDataPilotTableAttrTokenMap[] =
1533 : : {
1534 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_DATA_PILOT_TABLE_ATTR_NAME },
1535 : : { XML_NAMESPACE_TABLE, XML_APPLICATION_DATA, XML_TOK_DATA_PILOT_TABLE_ATTR_APPLICATION_DATA },
1536 : : { XML_NAMESPACE_TABLE, XML_GRAND_TOTAL, XML_TOK_DATA_PILOT_TABLE_ATTR_GRAND_TOTAL },
1537 : : { XML_NAMESPACE_TABLE, XML_IGNORE_EMPTY_ROWS, XML_TOK_DATA_PILOT_TABLE_ATTR_IGNORE_EMPTY_ROWS },
1538 : : { XML_NAMESPACE_TABLE, XML_IDENTIFY_CATEGORIES, XML_TOK_DATA_PILOT_TABLE_ATTR_IDENTIFY_CATEGORIES },
1539 : : { XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS },
1540 : : { XML_NAMESPACE_TABLE, XML_BUTTONS, XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS },
1541 : : { XML_NAMESPACE_TABLE, XML_SHOW_FILTER_BUTTON, XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON },
1542 : : { XML_NAMESPACE_TABLE, XML_DRILL_DOWN_ON_DOUBLE_CLICK, XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN },
1543 : : { XML_NAMESPACE_TABLE, XML_HEADER_GRID_LAYOUT, XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT },
1544 : : XML_TOKEN_MAP_END
1545 : : };
1546 : :
1547 [ + - ]: 4 : pDataPilotTableAttrTokenMap = new SvXMLTokenMap( aDataPilotTableAttrTokenMap );
1548 : : } // if( !pDataPilotTableAttrTokenMap )
1549 : :
1550 : 6 : return *pDataPilotTableAttrTokenMap;
1551 : : }
1552 : :
1553 : 28 : const SvXMLTokenMap& ScXMLImport::GetDataPilotTableElemTokenMap()
1554 : : {
1555 [ + + ]: 28 : if( !pDataPilotTableElemTokenMap )
1556 : : {
1557 : : static SvXMLTokenMapEntry aDataPilotTableElemTokenMap[] =
1558 : : {
1559 : : { XML_NAMESPACE_TABLE, XML_DATABASE_SOURCE_SQL, XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SQL },
1560 : : { XML_NAMESPACE_TABLE, XML_DATABASE_SOURCE_TABLE, XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_TABLE },
1561 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_GRAND_TOTAL, XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL },
1562 : : { XML_NAMESPACE_TABLE_EXT, XML_DATA_PILOT_GRAND_TOTAL, XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL_EXT },
1563 : : { XML_NAMESPACE_TABLE, XML_DATABASE_SOURCE_QUERY, XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_QUERY },
1564 : : { XML_NAMESPACE_TABLE, XML_SOURCE_SERVICE, XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SERVICE },
1565 : : { XML_NAMESPACE_TABLE, XML_SOURCE_CELL_RANGE, XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_CELL_RANGE },
1566 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_FIELD, XML_TOK_DATA_PILOT_TABLE_ELEM_DATA_PILOT_FIELD },
1567 : : XML_TOKEN_MAP_END
1568 : : };
1569 : :
1570 [ + - ]: 4 : pDataPilotTableElemTokenMap = new SvXMLTokenMap( aDataPilotTableElemTokenMap );
1571 : : } // if( !pDataPilotTableElemTokenMap )
1572 : :
1573 : 28 : return *pDataPilotTableElemTokenMap;
1574 : : }
1575 : :
1576 : 0 : const SvXMLTokenMap& ScXMLImport::GetDataPilotTableSourceServiceAttrTokenMap()
1577 : : {
1578 [ # # ]: 0 : if( !pDataPilotTableSourceServiceAttrTokenMap )
1579 : : {
1580 : : static SvXMLTokenMapEntry aDataPilotTableSourceServiceAttrTokenMap[] =
1581 : : {
1582 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_SOURCE_SERVICE_ATTR_NAME },
1583 : : { XML_NAMESPACE_TABLE, XML_SOURCE_NAME, XML_TOK_SOURCE_SERVICE_ATTR_SOURCE_NAME },
1584 : : { XML_NAMESPACE_TABLE, XML_OBJECT_NAME, XML_TOK_SOURCE_SERVICE_ATTR_OBJECT_NAME },
1585 : : { XML_NAMESPACE_TABLE, XML_USER_NAME, XML_TOK_SOURCE_SERVICE_ATTR_USER_NAME },
1586 : : { XML_NAMESPACE_TABLE, XML_PASSWORD, XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD },
1587 : : XML_TOKEN_MAP_END
1588 : : };
1589 : :
1590 [ # # ]: 0 : pDataPilotTableSourceServiceAttrTokenMap = new SvXMLTokenMap( aDataPilotTableSourceServiceAttrTokenMap );
1591 : : } // if( !pDataPilotTableSourceServiceAttrTokenMap )
1592 : :
1593 : 0 : return *pDataPilotTableSourceServiceAttrTokenMap;
1594 : : }
1595 : :
1596 : 0 : const SvXMLTokenMap& ScXMLImport::GetDataPilotGrandTotalAttrTokenMap()
1597 : : {
1598 [ # # ]: 0 : if (!pDataPilotGrandTotalAttrTokenMap)
1599 : : {
1600 : : static SvXMLTokenMapEntry aDataPilotGrandTotalAttrTokenMap[] =
1601 : : {
1602 : : { XML_NAMESPACE_TABLE, XML_DISPLAY, XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY },
1603 : : { XML_NAMESPACE_TABLE, XML_ORIENTATION, XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_ORIENTATION },
1604 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME },
1605 : : { XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME_EXT },
1606 : : XML_TOKEN_MAP_END
1607 : : };
1608 : :
1609 [ # # ]: 0 : pDataPilotGrandTotalAttrTokenMap = new SvXMLTokenMap( aDataPilotGrandTotalAttrTokenMap );
1610 : : }
1611 : :
1612 : 0 : return *pDataPilotGrandTotalAttrTokenMap;
1613 : : }
1614 : :
1615 : 6 : const SvXMLTokenMap& ScXMLImport::GetDataPilotTableSourceCellRangeAttrTokenMap()
1616 : : {
1617 [ + + ]: 6 : if( !pDataPilotTableSourceCellRangeAttrTokenMap )
1618 : : {
1619 : : static SvXMLTokenMapEntry aDataPilotTableSourceCellRangeAttrTokenMap[] =
1620 : : {
1621 : : { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_SOURCE_CELL_RANGE_ATTR_CELL_RANGE_ADDRESS },
1622 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_SOURCE_CELL_RANGE_ATTR_NAME },
1623 : : XML_TOKEN_MAP_END
1624 : : };
1625 : :
1626 [ + - ]: 4 : pDataPilotTableSourceCellRangeAttrTokenMap = new SvXMLTokenMap( aDataPilotTableSourceCellRangeAttrTokenMap );
1627 : : } // if( !pDataPilotTableSourceCellRangeAttrTokenMap )
1628 : :
1629 : 6 : return *pDataPilotTableSourceCellRangeAttrTokenMap;
1630 : : }
1631 : :
1632 : 2 : const SvXMLTokenMap& ScXMLImport::GetDataPilotTableSourceCellRangeElemTokenMap()
1633 : : {
1634 [ + - ]: 2 : if( !pDataPilotTableSourceCellRangeElemTokenMap )
1635 : : {
1636 : : static SvXMLTokenMapEntry aDataPilotTableSourceCellRangeElemTokenMap[] =
1637 : : {
1638 : : { XML_NAMESPACE_TABLE, XML_FILTER, XML_TOK_SOURCE_CELL_RANGE_ELEM_FILTER},
1639 : : XML_TOKEN_MAP_END
1640 : : };
1641 : :
1642 [ + - ]: 2 : pDataPilotTableSourceCellRangeElemTokenMap = new SvXMLTokenMap( aDataPilotTableSourceCellRangeElemTokenMap );
1643 : : } // if( !pDataPilotTableSourceCellRangeElemTokenMap )
1644 : :
1645 : 2 : return *pDataPilotTableSourceCellRangeElemTokenMap;
1646 : : }
1647 : :
1648 : 22 : const SvXMLTokenMap& ScXMLImport::GetDataPilotFieldAttrTokenMap()
1649 : : {
1650 [ + + ]: 22 : if( !pDataPilotFieldAttrTokenMap )
1651 : : {
1652 : : static SvXMLTokenMapEntry aDataPilotFieldAttrTokenMap[] =
1653 : : {
1654 : : { XML_NAMESPACE_TABLE, XML_SOURCE_FIELD_NAME, XML_TOK_DATA_PILOT_FIELD_ATTR_SOURCE_FIELD_NAME },
1655 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME },
1656 : : { XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME_EXT },
1657 : : { XML_NAMESPACE_TABLE, XML_IS_DATA_LAYOUT_FIELD, XML_TOK_DATA_PILOT_FIELD_ATTR_IS_DATA_LAYOUT_FIELD },
1658 : : { XML_NAMESPACE_TABLE, XML_FUNCTION, XML_TOK_DATA_PILOT_FIELD_ATTR_FUNCTION },
1659 : : { XML_NAMESPACE_TABLE, XML_ORIENTATION, XML_TOK_DATA_PILOT_FIELD_ATTR_ORIENTATION },
1660 : : { XML_NAMESPACE_TABLE, XML_SELECTED_PAGE, XML_TOK_DATA_PILOT_FIELD_ATTR_SELECTED_PAGE },
1661 : : { XML_NAMESPACE_TABLE, XML_USED_HIERARCHY, XML_TOK_DATA_PILOT_FIELD_ATTR_USED_HIERARCHY },
1662 : : XML_TOKEN_MAP_END
1663 : : };
1664 : :
1665 [ + - ]: 4 : pDataPilotFieldAttrTokenMap = new SvXMLTokenMap( aDataPilotFieldAttrTokenMap );
1666 : : } // if( !pDataPilotFieldAttrTokenMap )
1667 : :
1668 : 22 : return *pDataPilotFieldAttrTokenMap;
1669 : : }
1670 : :
1671 : 22 : const SvXMLTokenMap& ScXMLImport::GetDataPilotFieldElemTokenMap()
1672 : : {
1673 [ + + ]: 22 : if( !pDataPilotFieldElemTokenMap )
1674 : : {
1675 : : static SvXMLTokenMapEntry aDataPilotFieldElemTokenMap[] =
1676 : : {
1677 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_LEVEL, XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LEVEL },
1678 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_FIELD_REFERENCE, XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_REFERENCE },
1679 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUPS, XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_GROUPS },
1680 : : XML_TOKEN_MAP_END
1681 : : };
1682 : :
1683 [ + - ]: 4 : pDataPilotFieldElemTokenMap = new SvXMLTokenMap( aDataPilotFieldElemTokenMap );
1684 : : } // if( !pDataPilotFieldElemTokenMap )
1685 : :
1686 : 22 : return *pDataPilotFieldElemTokenMap;
1687 : : }
1688 : :
1689 : 22 : const SvXMLTokenMap& ScXMLImport::GetDataPilotLevelAttrTokenMap()
1690 : : {
1691 [ + + ]: 22 : if( !pDataPilotLevelAttrTokenMap )
1692 : : {
1693 : : static SvXMLTokenMapEntry aDataPilotLevelAttrTokenMap[] =
1694 : : {
1695 : : { XML_NAMESPACE_TABLE, XML_SHOW_EMPTY, XML_TOK_DATA_PILOT_LEVEL_ATTR_SHOW_EMPTY },
1696 : : XML_TOKEN_MAP_END
1697 : : };
1698 : :
1699 [ + - ]: 4 : pDataPilotLevelAttrTokenMap = new SvXMLTokenMap( aDataPilotLevelAttrTokenMap );
1700 : : } // if( !pDataPilotLevelAttrTokenMap )
1701 : :
1702 : 22 : return *pDataPilotLevelAttrTokenMap;
1703 : : }
1704 : :
1705 : 38 : const SvXMLTokenMap& ScXMLImport::GetDataPilotLevelElemTokenMap()
1706 : : {
1707 [ + + ]: 38 : if( !pDataPilotLevelElemTokenMap )
1708 : : {
1709 : : static SvXMLTokenMapEntry aDataPilotLevelElemTokenMap[] =
1710 : : {
1711 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_SUBTOTALS, XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_SUBTOTALS },
1712 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBERS, XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_MEMBERS },
1713 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_DISPLAY_INFO, XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_DISPLAY_INFO },
1714 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_SORT_INFO, XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_SORT_INFO },
1715 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_LAYOUT_INFO, XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LAYOUT_INFO },
1716 : : XML_TOKEN_MAP_END
1717 : : };
1718 : :
1719 [ + - ]: 4 : pDataPilotLevelElemTokenMap = new SvXMLTokenMap( aDataPilotLevelElemTokenMap );
1720 : : } // if( !pDataPilotLevelElemTokenMap )
1721 : :
1722 : 38 : return *pDataPilotLevelElemTokenMap;
1723 : : }
1724 : :
1725 : 6 : const SvXMLTokenMap& ScXMLImport::GetDataPilotSubTotalsElemTokenMap()
1726 : : {
1727 [ + + ]: 6 : if( !pDataPilotSubTotalsElemTokenMap )
1728 : : {
1729 : : static SvXMLTokenMapEntry aDataPilotSubTotalsElemTokenMap[] =
1730 : : {
1731 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_SUBTOTAL, XML_TOK_DATA_PILOT_SUBTOTALS_ELEM_DATA_PILOT_SUBTOTAL },
1732 : : XML_TOKEN_MAP_END
1733 : : };
1734 : :
1735 [ + - ]: 4 : pDataPilotSubTotalsElemTokenMap = new SvXMLTokenMap( aDataPilotSubTotalsElemTokenMap );
1736 : : } // if( !pDataPilotSubTotalsElemTokenMap )
1737 : :
1738 : 6 : return *pDataPilotSubTotalsElemTokenMap;
1739 : : }
1740 : :
1741 : 6 : const SvXMLTokenMap& ScXMLImport::GetDataPilotSubTotalAttrTokenMap()
1742 : : {
1743 [ + + ]: 6 : if( !pDataPilotSubTotalAttrTokenMap )
1744 : : {
1745 : : static SvXMLTokenMapEntry aDataPilotSubTotalAttrTokenMap[] =
1746 : : {
1747 : : { XML_NAMESPACE_TABLE, XML_FUNCTION, XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_FUNCTION },
1748 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME },
1749 : : { XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME_EXT },
1750 : : XML_TOKEN_MAP_END
1751 : : };
1752 : :
1753 [ + - ]: 4 : pDataPilotSubTotalAttrTokenMap = new SvXMLTokenMap( aDataPilotSubTotalAttrTokenMap );
1754 : : } // if( !pDataPilotSubTotalAttrTokenMap )
1755 : :
1756 : 6 : return *pDataPilotSubTotalAttrTokenMap;
1757 : : }
1758 : :
1759 : 40 : const SvXMLTokenMap& ScXMLImport::GetDataPilotMembersElemTokenMap()
1760 : : {
1761 [ + + ]: 40 : if( !pDataPilotMembersElemTokenMap )
1762 : : {
1763 : : static SvXMLTokenMapEntry aDataPilotMembersElemTokenMap[] =
1764 : : {
1765 : : { XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBER, XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER },
1766 : : XML_TOKEN_MAP_END
1767 : : };
1768 : :
1769 [ + - ]: 2 : pDataPilotMembersElemTokenMap = new SvXMLTokenMap( aDataPilotMembersElemTokenMap );
1770 : : } // if( !pDataPilotMembersElemTokenMap )
1771 : :
1772 : 40 : return *pDataPilotMembersElemTokenMap;
1773 : : }
1774 : :
1775 : 40 : const SvXMLTokenMap& ScXMLImport::GetDataPilotMemberAttrTokenMap()
1776 : : {
1777 [ + + ]: 40 : if( !pDataPilotMemberAttrTokenMap )
1778 : : {
1779 : : static SvXMLTokenMapEntry aDataPilotMemberAttrTokenMap[] =
1780 : : {
1781 : : { XML_NAMESPACE_TABLE, XML_NAME, XML_TOK_DATA_PILOT_MEMBER_ATTR_NAME },
1782 : : { XML_NAMESPACE_TABLE, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME },
1783 : : { XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME_EXT },
1784 : : { XML_NAMESPACE_TABLE, XML_DISPLAY, XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY },
1785 : : { XML_NAMESPACE_TABLE, XML_SHOW_DETAILS, XML_TOK_DATA_PILOT_MEMBER_ATTR_SHOW_DETAILS },
1786 : : XML_TOKEN_MAP_END
1787 : : };
1788 : :
1789 [ + - ]: 2 : pDataPilotMemberAttrTokenMap = new SvXMLTokenMap( aDataPilotMemberAttrTokenMap );
1790 : : } // if( !pDataPilotMemberAttrTokenMap )
1791 : :
1792 : 40 : return *pDataPilotMemberAttrTokenMap;
1793 : : }
1794 : :
1795 : 0 : const SvXMLTokenMap& ScXMLImport::GetConsolidationAttrTokenMap()
1796 : : {
1797 [ # # ]: 0 : if( !pConsolidationAttrTokenMap )
1798 : : {
1799 : : static SvXMLTokenMapEntry aConsolidationAttrTokenMap[] =
1800 : : {
1801 : : { XML_NAMESPACE_TABLE, XML_FUNCTION, XML_TOK_CONSOLIDATION_ATTR_FUNCTION },
1802 : : { XML_NAMESPACE_TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES, XML_TOK_CONSOLIDATION_ATTR_SOURCE_RANGES },
1803 : : { XML_NAMESPACE_TABLE, XML_TARGET_CELL_ADDRESS, XML_TOK_CONSOLIDATION_ATTR_TARGET_ADDRESS },
1804 : : { XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_TOK_CONSOLIDATION_ATTR_USE_LABEL },
1805 : : { XML_NAMESPACE_TABLE, XML_LINK_TO_SOURCE_DATA, XML_TOK_CONSOLIDATION_ATTR_LINK_TO_SOURCE },
1806 : : XML_TOKEN_MAP_END
1807 : : };
1808 : :
1809 [ # # ]: 0 : pConsolidationAttrTokenMap = new SvXMLTokenMap( aConsolidationAttrTokenMap );
1810 : : } // if( !pConsolidationAttrTokenMap )
1811 : :
1812 : 0 : return *pConsolidationAttrTokenMap;
1813 : : }
1814 : :
1815 : :
1816 : 376 : SvXMLImportContext *ScXMLImport::CreateContext( sal_uInt16 nPrefix,
1817 : : const OUString& rLocalName,
1818 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList )
1819 : : {
1820 : 376 : SvXMLImportContext *pContext = 0;
1821 : :
1822 [ + + + + : 1214 : if( (XML_NAMESPACE_OFFICE == nPrefix) &&
+ + + + ]
[ + + ]
1823 : 373 : ( IsXMLToken(rLocalName, XML_DOCUMENT_STYLES) ||
1824 : 279 : IsXMLToken(rLocalName, XML_DOCUMENT_CONTENT) ||
1825 : 186 : IsXMLToken(rLocalName, XML_DOCUMENT_SETTINGS) )) {
1826 : : pContext = new ScXMLDocContext_Impl( *this, nPrefix, rLocalName,
1827 [ + - ][ + - ]: 280 : xAttrList );
1828 [ + + + - ]: 189 : } else if ( (XML_NAMESPACE_OFFICE == nPrefix) &&
[ + + ]
1829 : 93 : ( IsXMLToken(rLocalName, XML_DOCUMENT_META)) ) {
1830 : 93 : pContext = CreateMetaContext(rLocalName);
1831 [ - + # # ]: 3 : } else if ( (XML_NAMESPACE_OFFICE == nPrefix) &&
[ - + ]
1832 : 0 : ( IsXMLToken(rLocalName, XML_DOCUMENT)) ) {
1833 : : uno::Reference<xml::sax::XDocumentHandler> xDocBuilder(
1834 [ # # ]: 0 : mxServiceFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
1835 : 0 : "com.sun.star.xml.dom.SAXDocumentBuilder"))),
1836 [ # # ][ # # ]: 0 : uno::UNO_QUERY_THROW);
[ # # ]
1837 : : uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
1838 [ # # ]: 0 : GetModel(), uno::UNO_QUERY_THROW);
1839 : : // flat OpenDocument file format
1840 : : pContext = new ScXMLFlatDocContext_Impl( *this, nPrefix, rLocalName,
1841 [ # # ][ # # ]: 0 : xAttrList, xDPS->getDocumentProperties(), xDocBuilder);
[ # # ][ # # ]
[ # # ]
1842 : : }
1843 : : else
1844 : 3 : pContext = SvXMLImport::CreateContext( nPrefix, rLocalName, xAttrList );
1845 : :
1846 : 376 : return pContext;
1847 : : }
1848 : :
1849 : : // #110680#
1850 : 378 : ScXMLImport::ScXMLImport(
1851 : : const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
1852 : : const sal_uInt16 nImportFlag)
1853 : : : SvXMLImport( xServiceFactory, nImportFlag ),
1854 : : pDoc( NULL ),
1855 : : pChangeTrackingImportHelper(NULL),
1856 : : pStylesImportHelper(NULL),
1857 : : sNumberFormat(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_NUMFMT)),
1858 : : sLocale(RTL_CONSTASCII_USTRINGPARAM(SC_LOCALE)),
1859 : : sCellStyle(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLSTYL)),
1860 : : sStandardFormat(RTL_CONSTASCII_USTRINGPARAM(SC_STANDARDFORMAT)),
1861 : : sType(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_TYPE)),
1862 : : pDocElemTokenMap( 0 ),
1863 : : pStylesElemTokenMap( 0 ),
1864 : : pStylesAttrTokenMap( 0 ),
1865 : : pStyleElemTokenMap( 0 ),
1866 : : pBodyElemTokenMap( 0 ),
1867 : : pContentValidationsElemTokenMap( 0 ),
1868 : : pContentValidationElemTokenMap( 0 ),
1869 : : pContentValidationAttrTokenMap( 0 ),
1870 : : pContentValidationMessageElemTokenMap( 0 ),
1871 : : pContentValidationHelpMessageAttrTokenMap( 0 ),
1872 : : pContentValidationErrorMessageAttrTokenMap( 0 ),
1873 : : pContentValidationErrorMacroAttrTokenMap( 0 ),
1874 : : pCondFormatsTokenMap( 0 ),
1875 : : pCondFormatTokenMap( 0 ),
1876 : : pCondFormatAttrMap( 0 ),
1877 : : pConditionAttrMap( 0 ),
1878 : : pColorScaleTokenMap( 0 ),
1879 : : pColorScaleEntryAttrTokenMap( 0 ),
1880 : : pDataBarTokenMap( 0 ),
1881 : : pDataBarAttrMap( 0 ),
1882 : : pDataBarEntryAttrMap( 0 ),
1883 : : pLabelRangesElemTokenMap( 0 ),
1884 : : pLabelRangeAttrTokenMap( 0 ),
1885 : : pTableElemTokenMap( 0 ),
1886 : : pTableProtectionElemTokenMap(NULL),
1887 : : pTableRowsElemTokenMap( 0 ),
1888 : : pTableColsElemTokenMap( 0 ),
1889 : : pTableScenarioAttrTokenMap( 0 ),
1890 : : pTableAttrTokenMap( 0 ),
1891 : : pTableColAttrTokenMap( 0 ),
1892 : : pTableRowElemTokenMap( 0 ),
1893 : : pTableRowAttrTokenMap( 0 ),
1894 : : pTableRowCellElemTokenMap( 0 ),
1895 : : pTableRowCellAttrTokenMap( 0 ),
1896 : : pTableAnnotationAttrTokenMap( 0 ),
1897 : : pDetectiveElemTokenMap( 0 ),
1898 : : pDetectiveHighlightedAttrTokenMap( 0 ),
1899 : : pDetectiveOperationAttrTokenMap( 0 ),
1900 : : pTableCellRangeSourceAttrTokenMap( 0 ),
1901 : : pNamedExpressionsElemTokenMap( 0 ),
1902 : : pNamedRangeAttrTokenMap( 0 ),
1903 : : pNamedExpressionAttrTokenMap( 0 ),
1904 : : pDatabaseRangesElemTokenMap( 0 ),
1905 : : pDatabaseRangeElemTokenMap( 0 ),
1906 : : pDatabaseRangeAttrTokenMap( 0 ),
1907 : : pDatabaseRangeSourceSQLAttrTokenMap( 0 ),
1908 : : pDatabaseRangeSourceTableAttrTokenMap( 0 ),
1909 : : pDatabaseRangeSourceQueryAttrTokenMap( 0 ),
1910 : : pFilterElemTokenMap( 0 ),
1911 : : pFilterAttrTokenMap( 0 ),
1912 : : pFilterConditionElemTokenMap( 0 ),
1913 : : pFilterConditionAttrTokenMap( 0 ),
1914 : : pFilterSetItemAttrTokenMap( 0 ),
1915 : : pSortElemTokenMap( 0 ),
1916 : : pSortAttrTokenMap( 0 ),
1917 : : pSortSortByAttrTokenMap( 0 ),
1918 : : pDatabaseRangeSubTotalRulesElemTokenMap( 0 ),
1919 : : pDatabaseRangeSubTotalRulesAttrTokenMap( 0 ),
1920 : : pSubTotalRulesSortGroupsAttrTokenMap( 0 ),
1921 : : pSubTotalRulesSubTotalRuleElemTokenMap( 0 ),
1922 : : pSubTotalRulesSubTotalRuleAttrTokenMap( 0 ),
1923 : : pSubTotalRuleSubTotalFieldAttrTokenMap( 0 ),
1924 : : pDataPilotTablesElemTokenMap( 0 ),
1925 : : pDataPilotTableAttrTokenMap( 0 ),
1926 : : pDataPilotTableElemTokenMap( 0 ),
1927 : : pDataPilotTableSourceServiceAttrTokenMap( 0 ),
1928 : : pDataPilotGrandTotalAttrTokenMap(NULL),
1929 : : pDataPilotTableSourceCellRangeElemTokenMap( 0 ),
1930 : : pDataPilotTableSourceCellRangeAttrTokenMap( 0 ),
1931 : : pDataPilotFieldAttrTokenMap( 0 ),
1932 : : pDataPilotFieldElemTokenMap( 0 ),
1933 : : pDataPilotLevelAttrTokenMap( 0 ),
1934 : : pDataPilotLevelElemTokenMap( 0 ),
1935 : : pDataPilotSubTotalsElemTokenMap( 0 ),
1936 : : pDataPilotSubTotalAttrTokenMap( 0 ),
1937 : : pDataPilotMembersElemTokenMap( 0 ),
1938 : : pDataPilotMemberAttrTokenMap( 0 ),
1939 : : pConsolidationAttrTokenMap( 0 ),
1940 : : aTables(*this),
1941 : : pMyNamedExpressions(NULL),
1942 : : pMyLabelRanges(NULL),
1943 : : pValidations(NULL),
1944 : : pDetectiveOpArray(NULL),
1945 : : pSolarMutexGuard(NULL),
1946 : : pNumberFormatAttributesExportHelper(NULL),
1947 : : pStyleNumberFormats(NULL),
1948 : : sPrevStyleName(),
1949 : : sPrevCurrency(),
1950 : : nSolarMutexLocked(0),
1951 : : nProgressCount(0),
1952 : : nStyleFamilyMask( 0 ),
1953 : : nPrevCellType(0),
1954 : : bLoadDoc( true ),
1955 : : bRemoveLastChar(false),
1956 : : bNullDateSetted(false),
1957 : : bSelfImportingXMLSet(false),
1958 : : bLatinDefaultStyle(false),
1959 : : bFromWrapper(false),
1960 [ + - ][ + - ]: 378 : mbHasNewCondFormatData(false)
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
1961 : : {
1962 [ + - ][ + - ]: 378 : pStylesImportHelper = new ScMyStylesImportHelper(*this);
1963 : :
1964 [ + - ][ + - ]: 378 : xScPropHdlFactory = new XMLScPropHdlFactory;
[ + - ]
1965 [ + - ][ + - ]: 378 : xCellStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScCellStylesProperties, xScPropHdlFactory);
[ + - ]
1966 [ + - ][ + - ]: 378 : xColumnStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScColumnStylesProperties, xScPropHdlFactory);
[ + - ]
1967 [ + - ][ + - ]: 378 : xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScRowStylesImportProperties, xScPropHdlFactory);
[ + - ]
1968 [ + - ][ + - ]: 378 : xTableStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScTableStylesImportProperties, xScPropHdlFactory);
[ + - ]
1969 : :
1970 : : // #i66550# needed for 'presentation:event-listener' element for URLs in shapes
1971 : 378 : GetNamespaceMap().Add(
1972 [ + - ]: 378 : GetXMLToken( XML_NP_PRESENTATION ),
1973 [ + - ]: 378 : GetXMLToken( XML_N_PRESENTATION ),
1974 [ + - ]: 378 : XML_NAMESPACE_PRESENTATION );
1975 : :
1976 : : // initialize cell type map.
1977 : : const struct { XMLTokenEnum _token; sal_Int16 _type; } aCellTypePairs[] =
1978 : : {
1979 : : { XML_FLOAT, util::NumberFormat::NUMBER },
1980 : : { XML_STRING, util::NumberFormat::TEXT },
1981 : : { XML_TIME, util::NumberFormat::TIME },
1982 : : { XML_DATE, util::NumberFormat::DATETIME },
1983 : : { XML_PERCENTAGE, util::NumberFormat::PERCENT },
1984 : : { XML_CURRENCY, util::NumberFormat::CURRENCY },
1985 : : { XML_BOOLEAN, util::NumberFormat::LOGICAL }
1986 : 378 : };
1987 : 378 : size_t n = sizeof(aCellTypePairs)/sizeof(aCellTypePairs[0]);
1988 [ + + ]: 3024 : for (size_t i = 0; i < n; ++i)
1989 : : {
1990 : : aCellTypeMap.insert(
1991 : : CellTypeMap::value_type(
1992 [ + - ][ + - ]: 2646 : GetXMLToken(aCellTypePairs[i]._token), aCellTypePairs[i]._type));
1993 : : }
1994 : 378 : }
1995 : :
1996 [ + - ][ + - ]: 378 : ScXMLImport::~ScXMLImport() throw()
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
1997 : : {
1998 : : // delete pI18NMap;
1999 [ + + ][ + - ]: 378 : delete pDocElemTokenMap;
2000 [ - + ][ # # ]: 378 : delete pStylesElemTokenMap;
2001 [ - + ][ # # ]: 378 : delete pStylesAttrTokenMap;
2002 [ - + ][ # # ]: 378 : delete pStyleElemTokenMap;
2003 [ + + ][ + - ]: 378 : delete pBodyElemTokenMap;
2004 [ + + ][ + - ]: 378 : delete pContentValidationsElemTokenMap;
2005 [ + + ][ + - ]: 378 : delete pContentValidationElemTokenMap;
2006 [ + + ][ + - ]: 378 : delete pContentValidationAttrTokenMap;
2007 [ + + ][ + - ]: 378 : delete pContentValidationMessageElemTokenMap;
2008 [ - + ][ # # ]: 378 : delete pContentValidationHelpMessageAttrTokenMap;
2009 [ + + ][ + - ]: 378 : delete pContentValidationErrorMessageAttrTokenMap;
2010 [ - + ][ # # ]: 378 : delete pContentValidationErrorMacroAttrTokenMap;
2011 [ + + ][ + - ]: 378 : delete pCondFormatsTokenMap;
2012 [ + + ][ + - ]: 378 : delete pCondFormatTokenMap;
2013 [ + + ][ + - ]: 378 : delete pCondFormatAttrMap;
2014 [ - + ][ # # ]: 378 : delete pConditionAttrMap;
2015 [ + + ][ + - ]: 378 : delete pColorScaleTokenMap;
2016 [ + + ][ + - ]: 378 : delete pColorScaleEntryAttrTokenMap;
2017 [ - + ][ # # ]: 378 : delete pDataBarTokenMap;
2018 [ - + ][ # # ]: 378 : delete pDataBarAttrMap;
2019 [ - + ][ # # ]: 378 : delete pDataBarEntryAttrMap;
2020 [ - + ][ # # ]: 378 : delete pLabelRangesElemTokenMap;
2021 [ - + ][ # # ]: 378 : delete pLabelRangeAttrTokenMap;
2022 [ + + ][ + - ]: 378 : delete pTableElemTokenMap;
2023 [ - + ][ # # ]: 378 : delete pTableProtectionElemTokenMap;
2024 [ - + ][ # # ]: 378 : delete pTableRowsElemTokenMap;
2025 [ - + ][ # # ]: 378 : delete pTableColsElemTokenMap;
2026 [ + + ][ + - ]: 378 : delete pTableAttrTokenMap;
2027 [ - + ][ # # ]: 378 : delete pTableScenarioAttrTokenMap;
2028 [ + + ][ + - ]: 378 : delete pTableColAttrTokenMap;
2029 [ + + ][ + - ]: 378 : delete pTableRowElemTokenMap;
2030 [ + + ][ + - ]: 378 : delete pTableRowAttrTokenMap;
2031 [ + + ][ + - ]: 378 : delete pTableRowCellElemTokenMap;
2032 [ + + ][ + - ]: 378 : delete pTableRowCellAttrTokenMap;
2033 [ + + ][ + - ]: 378 : delete pTableAnnotationAttrTokenMap;
2034 [ - + ][ # # ]: 378 : delete pDetectiveElemTokenMap;
2035 [ - + ][ # # ]: 378 : delete pDetectiveHighlightedAttrTokenMap;
2036 [ - + ][ # # ]: 378 : delete pDetectiveOperationAttrTokenMap;
2037 [ - + ][ # # ]: 378 : delete pTableCellRangeSourceAttrTokenMap;
2038 [ + + ][ + - ]: 378 : delete pNamedExpressionsElemTokenMap;
2039 [ + + ][ + - ]: 378 : delete pNamedRangeAttrTokenMap;
2040 [ + + ][ + - ]: 378 : delete pNamedExpressionAttrTokenMap;
2041 [ + + ][ + - ]: 378 : delete pDatabaseRangesElemTokenMap;
2042 [ + + ][ + - ]: 378 : delete pDatabaseRangeElemTokenMap;
2043 [ + + ][ + - ]: 378 : delete pDatabaseRangeAttrTokenMap;
2044 [ - + ][ # # ]: 378 : delete pDatabaseRangeSourceSQLAttrTokenMap;
2045 [ - + ][ # # ]: 378 : delete pDatabaseRangeSourceTableAttrTokenMap;
2046 [ - + ][ # # ]: 378 : delete pDatabaseRangeSourceQueryAttrTokenMap;
2047 [ + + ][ + - ]: 378 : delete pFilterElemTokenMap;
2048 [ + + ][ + - ]: 378 : delete pFilterAttrTokenMap;
2049 [ + + ][ + - ]: 378 : delete pFilterConditionElemTokenMap;
2050 [ + + ][ + - ]: 378 : delete pFilterConditionAttrTokenMap;
2051 [ + + ][ + - ]: 378 : delete pFilterSetItemAttrTokenMap;
2052 [ - + ][ # # ]: 378 : delete pSortElemTokenMap;
2053 [ - + ][ # # ]: 378 : delete pSortAttrTokenMap;
2054 [ - + ][ # # ]: 378 : delete pSortSortByAttrTokenMap;
2055 [ - + ][ # # ]: 378 : delete pDatabaseRangeSubTotalRulesElemTokenMap;
2056 [ - + ][ # # ]: 378 : delete pDatabaseRangeSubTotalRulesAttrTokenMap;
2057 [ - + ][ # # ]: 378 : delete pSubTotalRulesSortGroupsAttrTokenMap;
2058 [ - + ][ # # ]: 378 : delete pSubTotalRulesSubTotalRuleElemTokenMap;
2059 [ - + ][ # # ]: 378 : delete pSubTotalRulesSubTotalRuleAttrTokenMap;
2060 [ - + ][ # # ]: 378 : delete pSubTotalRuleSubTotalFieldAttrTokenMap;
2061 [ + + ][ + - ]: 378 : delete pDataPilotTablesElemTokenMap;
2062 [ + + ][ + - ]: 378 : delete pDataPilotTableAttrTokenMap;
2063 [ + + ][ + - ]: 378 : delete pDataPilotTableElemTokenMap;
2064 [ - + ][ # # ]: 378 : delete pDataPilotTableSourceServiceAttrTokenMap;
2065 [ + + ][ + - ]: 378 : delete pDataPilotTableSourceCellRangeAttrTokenMap;
2066 [ + + ][ + - ]: 378 : delete pDataPilotTableSourceCellRangeElemTokenMap;
2067 [ + + ][ + - ]: 378 : delete pDataPilotFieldAttrTokenMap;
2068 [ + + ][ + - ]: 378 : delete pDataPilotFieldElemTokenMap;
2069 [ + + ][ + - ]: 378 : delete pDataPilotLevelAttrTokenMap;
2070 [ + + ][ + - ]: 378 : delete pDataPilotLevelElemTokenMap;
2071 [ + + ][ + - ]: 378 : delete pDataPilotSubTotalsElemTokenMap;
2072 [ + + ][ + - ]: 378 : delete pDataPilotSubTotalAttrTokenMap;
2073 [ + + ][ + - ]: 378 : delete pDataPilotMembersElemTokenMap;
2074 [ + + ][ + - ]: 378 : delete pDataPilotMemberAttrTokenMap;
2075 [ - + ][ # # ]: 378 : delete pConsolidationAttrTokenMap;
2076 : :
2077 [ - + ][ # # ]: 378 : delete pChangeTrackingImportHelper;
2078 [ + + ][ + - ]: 378 : delete pNumberFormatAttributesExportHelper;
2079 [ + + ]: 378 : delete pStyleNumberFormats;
2080 [ + - ][ + - ]: 378 : delete pStylesImportHelper;
2081 : :
2082 [ - + ][ # # ]: 378 : delete pSolarMutexGuard;
2083 : :
2084 [ + + ][ + - ]: 378 : delete pMyNamedExpressions;
2085 [ - + ]: 378 : delete pMyLabelRanges;
2086 [ + + ]: 378 : delete pValidations;
2087 [ + + ]: 378 : delete pDetectiveOpArray;
2088 [ - + ]: 756 : }
2089 : :
2090 : : // ---------------------------------------------------------------------
2091 : :
2092 : 186 : SvXMLImportContext *ScXMLImport::CreateFontDeclsContext(const sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
2093 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList)
2094 : : {
2095 : : XMLFontStylesContext *pFSContext = new XMLFontStylesContext(
2096 [ + - ]: 186 : *this, nPrefix, rLocalName, xAttrList, osl_getThreadTextEncoding());
2097 : 186 : SetFontDecls(pFSContext);
2098 : 186 : SvXMLImportContext* pContext = pFSContext;
2099 : 186 : return pContext;
2100 : : }
2101 : :
2102 : 280 : SvXMLImportContext *ScXMLImport::CreateStylesContext(const ::rtl::OUString& rLocalName,
2103 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList, bool bIsAutoStyle )
2104 : : {
2105 : : SvXMLImportContext* pContext = new XMLTableStylesContext(
2106 [ + - ]: 280 : *this, XML_NAMESPACE_OFFICE, rLocalName, xAttrList, bIsAutoStyle);
2107 : :
2108 [ + + ]: 280 : if (bIsAutoStyle)
2109 : 186 : SetAutoStyles((SvXMLStylesContext*)pContext);
2110 : : else
2111 : 94 : SetStyles((SvXMLStylesContext*)pContext);
2112 : :
2113 : 280 : return pContext;
2114 : : }
2115 : :
2116 : 93 : SvXMLImportContext *ScXMLImport::CreateBodyContext(const ::rtl::OUString& rLocalName,
2117 : : const uno::Reference<xml::sax::XAttributeList>& xAttrList)
2118 : : {
2119 [ + - ]: 93 : return new ScXMLBodyContext(*this, XML_NAMESPACE_OFFICE, rLocalName, xAttrList);
2120 : : }
2121 : :
2122 : 93 : SvXMLImportContext *ScXMLImport::CreateMetaContext(
2123 : : const OUString& rLocalName )
2124 : : {
2125 : 93 : SvXMLImportContext* pContext = NULL;
2126 : :
2127 [ + - ][ + - ]: 93 : if( !IsStylesOnlyMode() && (getImportFlags() & IMPORT_META))
[ + - ]
2128 : : {
2129 : : uno::Reference<xml::sax::XDocumentHandler> xDocBuilder(
2130 [ + - ]: 93 : mxServiceFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
2131 : 93 : "com.sun.star.xml.dom.SAXDocumentBuilder"))),
2132 [ + - ][ + - ]: 93 : uno::UNO_QUERY_THROW);
[ + - ]
2133 : : uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
2134 [ + - ]: 93 : GetModel(), uno::UNO_QUERY_THROW);
2135 : : pContext = new SvXMLMetaDocumentContext(*this,
2136 : : XML_NAMESPACE_OFFICE, rLocalName,
2137 [ + - ][ + - ]: 93 : xDPS->getDocumentProperties(), xDocBuilder);
[ + - ][ + - ]
[ + - ]
2138 : : }
2139 : :
2140 [ - + ]: 93 : if( !pContext )
2141 : : pContext = new SvXMLImportContext( *this,
2142 [ # # ]: 0 : XML_NAMESPACE_OFFICE, rLocalName );
2143 : :
2144 : 93 : return pContext;
2145 : : }
2146 : :
2147 : 93 : SvXMLImportContext *ScXMLImport::CreateScriptContext(
2148 : : const OUString& rLocalName )
2149 : : {
2150 : 93 : SvXMLImportContext* pContext = NULL;
2151 : :
2152 [ + - ]: 93 : if( !(IsStylesOnlyMode()) )
2153 : : {
2154 : : pContext = new XMLScriptContext( *this,
2155 : : XML_NAMESPACE_OFFICE, rLocalName,
2156 [ + - ]: 93 : GetModel() );
2157 : : }
2158 : :
2159 [ - + ]: 93 : if( !pContext )
2160 : : pContext = new SvXMLImportContext( *this, XML_NAMESPACE_OFFICE,
2161 [ # # ]: 0 : rLocalName );
2162 : :
2163 : 93 : return pContext;
2164 : : }
2165 : :
2166 : 93 : void ScXMLImport::SetStatistics(
2167 : : const uno::Sequence<beans::NamedValue> & i_rStats)
2168 : : {
2169 : : static const char* s_stats[] =
2170 : : { "TableCount", "CellCount", "ObjectCount", 0 };
2171 : :
2172 : 93 : SvXMLImport::SetStatistics(i_rStats);
2173 : :
2174 : 93 : sal_uInt32 nCount(0);
2175 [ + + ]: 371 : for (sal_Int32 i = 0; i < i_rStats.getLength(); ++i) {
2176 [ + + ]: 1112 : for (const char** pStat = s_stats; *pStat != 0; ++pStat) {
2177 [ + + ]: 834 : if (i_rStats[i].Name.equalsAscii(*pStat)) {
2178 : 278 : sal_Int32 val = 0;
2179 [ + - ]: 278 : if (i_rStats[i].Value >>= val) {
2180 : 278 : nCount += val;
2181 : : } else {
2182 : : OSL_FAIL("ScXMLImport::SetStatistics: invalid entry");
2183 : : }
2184 : : }
2185 : : }
2186 : : }
2187 : :
2188 [ + - ]: 93 : if (nCount)
2189 : : {
2190 : 93 : GetProgressBarHelper()->SetReference(nCount);
2191 : 93 : GetProgressBarHelper()->SetValue(0);
2192 : : }
2193 : 93 : }
2194 : :
2195 : 5872 : sal_Int16 ScXMLImport::GetCellType(const OUString& rStrValue) const
2196 : : {
2197 [ + - ]: 5872 : CellTypeMap::const_iterator itr = aCellTypeMap.find(rStrValue);
2198 [ + - ][ + - ]: 5872 : if (itr != aCellTypeMap.end())
2199 [ + - ]: 5872 : return itr->second;
2200 : :
2201 : 5872 : return util::NumberFormat::UNDEFINED;
2202 : : }
2203 : :
2204 : 186 : XMLShapeImportHelper* ScXMLImport::CreateShapeImport()
2205 : : {
2206 [ + - ]: 186 : return new XMLTableShapeImportHelper(*this);
2207 : : }
2208 : :
2209 : 42 : bool ScXMLImport::GetValidation(const rtl::OUString& sName, ScMyImportValidation& aValidation)
2210 : : {
2211 [ + - ]: 42 : if (pValidations)
2212 : : {
2213 : 42 : bool bFound(false);
2214 : 42 : ScMyImportValidations::iterator aItr(pValidations->begin());
2215 : 42 : ScMyImportValidations::iterator aEndItr(pValidations->end());
2216 [ + - ][ + - ]: 114 : while(aItr != aEndItr && !bFound)
[ + + ][ + + ]
2217 : : {
2218 [ + + ]: 72 : if (aItr->sName == sName)
2219 : : {
2220 : : // source position must be set as string,
2221 : : // so sBaseCellAddress no longer has to be converted here
2222 : :
2223 : 42 : bFound = true;
2224 : : }
2225 : : else
2226 : 30 : ++aItr;
2227 : : }
2228 [ + - ]: 42 : if (bFound)
2229 : 42 : aValidation = *aItr;
2230 : 42 : return bFound;
2231 : : }
2232 : 42 : return false;
2233 : : }
2234 : :
2235 : 18 : void ScXMLImport::AddNamedExpression(SCTAB nTab, ScMyNamedExpression* pNamedExp)
2236 : : {
2237 : 18 : ::std::auto_ptr<ScMyNamedExpression> p(pNamedExp);
2238 [ + - ]: 18 : SheetNamedExpMap::iterator itr = maSheetNamedExpressions.find(nTab);
2239 [ + - ][ + - ]: 18 : if (itr == maSheetNamedExpressions.end())
[ + + ]
2240 : : {
2241 : : // No chain exists for this sheet. Create one.
2242 [ + - ][ + - ]: 12 : ::std::auto_ptr<ScMyNamedExpressions> pNew(new ScMyNamedExpressions);
2243 [ + - ][ + - ]: 12 : ::std::pair<SheetNamedExpMap::iterator, bool> r = maSheetNamedExpressions.insert(nTab, pNew);
2244 [ - + ]: 12 : if (!r.second)
2245 : : // insertion failed.
2246 : 18 : return;
2247 : :
2248 [ + - ][ + - ]: 12 : itr = r.first;
2249 : : }
2250 [ + - ]: 18 : ScMyNamedExpressions& r = *itr->second;
2251 [ + - ][ + - ]: 18 : r.push_back(p);
2252 : : }
2253 : :
2254 : 0 : ScXMLChangeTrackingImportHelper* ScXMLImport::GetChangeTrackingImportHelper()
2255 : : {
2256 [ # # ]: 0 : if (!pChangeTrackingImportHelper)
2257 [ # # ]: 0 : pChangeTrackingImportHelper = new ScXMLChangeTrackingImportHelper();
2258 : 0 : return pChangeTrackingImportHelper;
2259 : : }
2260 : :
2261 : 94 : void ScXMLImport::InsertStyles()
2262 : : {
2263 : 94 : GetStyles()->CopyStylesToDoc(true);
2264 : :
2265 : : // if content is going to be loaded with the same import, set bLatinDefaultStyle flag now
2266 [ - + ]: 94 : if ( getImportFlags() & IMPORT_CONTENT )
2267 : 0 : ExamineDefaultStyle();
2268 : 94 : }
2269 : :
2270 : 93 : void ScXMLImport::ExamineDefaultStyle()
2271 : : {
2272 [ + - ]: 93 : if (pDoc)
2273 : : {
2274 : : // #i62435# after inserting the styles, check if the default style has a latin-script-only
2275 : : // number format (then, value cells can be pre-initialized with western script type)
2276 : :
2277 : 93 : const ScPatternAttr* pDefPattern = pDoc->GetDefPattern();
2278 : 93 : SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
2279 [ + - ][ + - ]: 93 : if ( pFormatter && pDefPattern )
2280 : : {
2281 : 93 : sal_uInt32 nKey = pDefPattern->GetNumberFormat(pFormatter);
2282 : 93 : const SvNumberformat* pFormat = pFormatter->GetEntry(nKey);
2283 [ + - ][ + - ]: 93 : if ( pFormat && pFormat->IsStandard() )
[ + - ]
2284 : : {
2285 : : // The standard format is all-latin if the decimal separator dosen't
2286 : : // have a different script type
2287 : :
2288 [ + - ]: 93 : String aDecSep;
2289 : 93 : LanguageType nFormatLang = pFormat->GetLanguage();
2290 [ + - ]: 93 : if ( nFormatLang == LANGUAGE_SYSTEM )
2291 [ + - ][ + - ]: 93 : aDecSep = ScGlobal::pLocaleData->getNumDecimalSep();
2292 : : else
2293 : : {
2294 : : LocaleDataWrapper aLocaleData( pDoc->GetServiceManager(),
2295 [ # # ][ # # ]: 0 : MsLangId::convertLanguageToLocale( nFormatLang ) );
[ # # ]
2296 [ # # ][ # # ]: 0 : aDecSep = aLocaleData.getNumDecimalSep();
[ # # ]
2297 : : }
2298 : :
2299 [ + - ][ + - ]: 93 : sal_uInt8 nScript = pDoc->GetStringScriptType( aDecSep );
2300 [ + - ][ + - ]: 93 : if ( nScript == 0 || nScript == SCRIPTTYPE_LATIN )
2301 [ + - ]: 93 : bLatinDefaultStyle = true;
2302 : : }
2303 : : }
2304 : : }
2305 : 93 : }
2306 : :
2307 : 0 : void ScXMLImport::SetChangeTrackingViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rChangeProps)
2308 : : {
2309 [ # # ]: 0 : if (pDoc)
2310 : : {
2311 : 0 : sal_Int32 nCount(rChangeProps.getLength());
2312 [ # # ]: 0 : if (nCount)
2313 : : {
2314 [ # # ]: 0 : ScXMLImport::MutexGuard aGuard(*this);
2315 : 0 : sal_Int16 nTemp16(0);
2316 [ # # ][ # # ]: 0 : ScChangeViewSettings* pViewSettings(new ScChangeViewSettings());
2317 [ # # ]: 0 : for (sal_Int32 i = 0; i < nCount; ++i)
2318 : : {
2319 : 0 : rtl::OUString sName(rChangeProps[i].Name);
2320 [ # # ]: 0 : if (sName.compareToAscii("ShowChanges") == 0)
2321 [ # # ]: 0 : pViewSettings->SetShowChanges(::cppu::any2bool(rChangeProps[i].Value));
2322 [ # # ]: 0 : else if (sName.compareToAscii("ShowAcceptedChanges") == 0)
2323 [ # # ]: 0 : pViewSettings->SetShowAccepted(::cppu::any2bool(rChangeProps[i].Value));
2324 [ # # ]: 0 : else if (sName.compareToAscii("ShowRejectedChanges") == 0)
2325 [ # # ]: 0 : pViewSettings->SetShowRejected(::cppu::any2bool(rChangeProps[i].Value));
2326 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByDatetime") == 0)
2327 [ # # ]: 0 : pViewSettings->SetHasDate(::cppu::any2bool(rChangeProps[i].Value));
2328 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByDatetimeMode") == 0)
2329 : : {
2330 [ # # ]: 0 : if (rChangeProps[i].Value >>= nTemp16)
2331 : 0 : pViewSettings->SetTheDateMode(ScChgsDateMode(nTemp16));
2332 : : }
2333 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByDatetimeFirstDatetime") == 0)
2334 : : {
2335 : 0 : util::DateTime aDateTime;
2336 [ # # ][ # # ]: 0 : if (rChangeProps[i].Value >>= aDateTime)
2337 : : {
2338 : 0 : DateTime aCoreDateTime( DateTime::EMPTY );
2339 [ # # ]: 0 : ScXMLConverter::ConvertAPIToCoreDateTime(aDateTime, aCoreDateTime);
2340 [ # # ]: 0 : pViewSettings->SetTheFirstDateTime(aCoreDateTime);
2341 : : }
2342 : : }
2343 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByDatetimeSecondDatetime") == 0)
2344 : : {
2345 : 0 : util::DateTime aDateTime;
2346 [ # # ][ # # ]: 0 : if (rChangeProps[i].Value >>= aDateTime)
2347 : : {
2348 : 0 : DateTime aCoreDateTime( DateTime::EMPTY );
2349 [ # # ]: 0 : ScXMLConverter::ConvertAPIToCoreDateTime(aDateTime, aCoreDateTime);
2350 [ # # ]: 0 : pViewSettings->SetTheLastDateTime(aCoreDateTime);
2351 : : }
2352 : : }
2353 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByAuthor") == 0)
2354 [ # # ]: 0 : pViewSettings->SetHasAuthor(::cppu::any2bool(rChangeProps[i].Value));
2355 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByAuthorName") == 0)
2356 : : {
2357 : 0 : rtl::OUString sOUName;
2358 [ # # ]: 0 : if (rChangeProps[i].Value >>= sOUName)
2359 : : {
2360 [ # # ]: 0 : String sAuthorName(sOUName);
2361 [ # # ][ # # ]: 0 : pViewSettings->SetTheAuthorToShow(sAuthorName);
2362 : 0 : }
2363 : : }
2364 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByComment") == 0)
2365 [ # # ]: 0 : pViewSettings->SetHasComment(::cppu::any2bool(rChangeProps[i].Value));
2366 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByCommentText") == 0)
2367 : : {
2368 : 0 : rtl::OUString sOUComment;
2369 [ # # ]: 0 : if (rChangeProps[i].Value >>= sOUComment)
2370 : : {
2371 [ # # ]: 0 : String sComment(sOUComment);
2372 [ # # ][ # # ]: 0 : pViewSettings->SetTheComment(sComment);
[ # # ]
2373 : 0 : }
2374 : : }
2375 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByRanges") == 0)
2376 [ # # ]: 0 : pViewSettings->SetHasRange(::cppu::any2bool(rChangeProps[i].Value));
2377 [ # # ]: 0 : else if (sName.compareToAscii("ShowChangesByRangesList") == 0)
2378 : : {
2379 : 0 : rtl::OUString sRanges;
2380 [ # # ][ # # ]: 0 : if ((rChangeProps[i].Value >>= sRanges) && !sRanges.isEmpty())
[ # # ]
2381 : : {
2382 [ # # ]: 0 : ScRangeList aRangeList;
2383 : : ScRangeStringConverter::GetRangeListFromString(
2384 [ # # ]: 0 : aRangeList, sRanges, GetDocument(), FormulaGrammar::CONV_OOO);
2385 [ # # ][ # # ]: 0 : pViewSettings->SetTheRangeList(aRangeList);
2386 : 0 : }
2387 : : }
2388 : 0 : }
2389 [ # # ][ # # ]: 0 : pDoc->SetChangeViewSettings(*pViewSettings);
2390 : : }
2391 : : }
2392 : 0 : }
2393 : :
2394 : 93 : void ScXMLImport::SetViewSettings(const uno::Sequence<beans::PropertyValue>& aViewProps)
2395 : : {
2396 : 93 : sal_Int32 nCount(aViewProps.getLength());
2397 : 93 : sal_Int32 nHeight(0);
2398 : 93 : sal_Int32 nLeft(0);
2399 : 93 : sal_Int32 nTop(0);
2400 : 93 : sal_Int32 nWidth(0);
2401 [ + + ]: 558 : for (sal_Int32 i = 0; i < nCount; ++i)
2402 : : {
2403 : 465 : rtl::OUString sName(aViewProps[i].Name);
2404 [ + + ]: 465 : if (sName.compareToAscii("VisibleAreaHeight") == 0)
2405 : 93 : aViewProps[i].Value >>= nHeight;
2406 [ + + ]: 372 : else if (sName.compareToAscii("VisibleAreaLeft") == 0)
2407 : 93 : aViewProps[i].Value >>= nLeft;
2408 [ + + ]: 279 : else if (sName.compareToAscii("VisibleAreaTop") == 0)
2409 : 93 : aViewProps[i].Value >>= nTop;
2410 [ + + ]: 186 : else if (sName.compareToAscii("VisibleAreaWidth") == 0)
2411 : 93 : aViewProps[i].Value >>= nWidth;
2412 [ - + ]: 93 : else if (sName.compareToAscii("TrackedChangesViewSettings") == 0)
2413 : : {
2414 [ # # ]: 0 : uno::Sequence<beans::PropertyValue> aChangeProps;
2415 [ # # ][ # # ]: 0 : if(aViewProps[i].Value >>= aChangeProps)
2416 [ # # ][ # # ]: 0 : SetChangeTrackingViewSettings(aChangeProps);
2417 : : }
2418 : 465 : }
2419 [ + - ][ + - ]: 93 : if (nHeight && nWidth)
2420 : : {
2421 [ + - ]: 93 : if (GetModel().is())
2422 : : {
2423 [ + - ]: 93 : ScModelObj* pDocObj(ScModelObj::getImplementation( GetModel() ));
2424 [ + - ]: 93 : if (pDocObj)
2425 : : {
2426 [ + - ]: 93 : SfxObjectShell* pEmbeddedObj = pDocObj->GetEmbeddedObject();
2427 [ + - ]: 93 : if (pEmbeddedObj)
2428 : : {
2429 [ + - ]: 93 : Rectangle aRect;
2430 : 93 : aRect.setX( nLeft );
2431 : 93 : aRect.setY( nTop );
2432 : 93 : aRect.setWidth( nWidth );
2433 : 93 : aRect.setHeight( nHeight );
2434 [ + - ]: 93 : pEmbeddedObj->SetVisArea(aRect);
2435 : : }
2436 : : }
2437 : : }
2438 : : }
2439 : 93 : }
2440 : :
2441 : 93 : void ScXMLImport::SetConfigurationSettings(const uno::Sequence<beans::PropertyValue>& aConfigProps)
2442 : : {
2443 [ + - ]: 93 : if (GetModel().is())
2444 : : {
2445 [ + - ]: 93 : uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
2446 [ + - ]: 93 : if (xMultiServiceFactory.is())
2447 : : {
2448 : 93 : sal_Int32 nCount(aConfigProps.getLength());
2449 [ + - ]: 93 : rtl::OUString sCTName(RTL_CONSTASCII_USTRINGPARAM("TrackedChangesProtectionKey"));
2450 [ + - ]: 93 : rtl::OUString sVBName(RTL_CONSTASCII_USTRINGPARAM("VBACompatibilityMode"));
2451 [ + - ]: 93 : rtl::OUString sSCName(RTL_CONSTASCII_USTRINGPARAM("ScriptConfiguration"));
2452 [ + + ]: 2591 : for (sal_Int32 i = nCount - 1; i >= 0; --i)
2453 : : {
2454 [ - + ]: 2498 : if (aConfigProps[i].Name == sCTName)
2455 : : {
2456 : 0 : rtl::OUString sKey;
2457 [ # # ]: 0 : if (aConfigProps[i].Value >>= sKey)
2458 : : {
2459 [ # # ]: 0 : uno::Sequence<sal_Int8> aPass;
2460 [ # # ]: 0 : ::sax::Converter::decodeBase64(aPass, sKey);
2461 [ # # ]: 0 : if (aPass.getLength())
2462 : : {
2463 [ # # ]: 0 : if (pDoc->GetChangeTrack())
2464 [ # # ]: 0 : pDoc->GetChangeTrack()->SetProtection(aPass);
2465 : : else
2466 : : {
2467 [ # # ]: 0 : std::set<rtl::OUString> aUsers;
2468 [ # # ][ # # ]: 0 : ScChangeTrack* pTrack = new ScChangeTrack(pDoc, aUsers);
2469 [ # # ]: 0 : pTrack->SetProtection(aPass);
2470 [ # # ]: 0 : pDoc->SetChangeTrack(pTrack);
2471 : : }
2472 [ # # ]: 0 : }
2473 : 0 : }
2474 : : }
2475 : : // store the following items for later use (after document is loaded)
2476 [ + - ][ - + ]: 2498 : else if ((aConfigProps[i].Name == sVBName) || (aConfigProps[i].Name == sSCName))
[ - + ]
2477 : : {
2478 [ # # ]: 0 : uno::Reference< beans::XPropertySet > xImportInfo = getImportInfo();
2479 [ # # ]: 0 : if (xImportInfo.is())
2480 : : {
2481 [ # # ][ # # ]: 0 : uno::Reference< beans::XPropertySetInfo > xPropertySetInfo = xImportInfo->getPropertySetInfo();
2482 [ # # ][ # # ]: 0 : if (xPropertySetInfo.is() && xPropertySetInfo->hasPropertyByName(aConfigProps[i].Name))
[ # # ][ # # ]
[ # # ]
2483 [ # # ][ # # ]: 0 : xImportInfo->setPropertyValue( aConfigProps[i].Name, aConfigProps[i].Value );
2484 : 0 : }
2485 : : }
2486 : : }
2487 [ + - ][ + - ]: 93 : uno::Reference <uno::XInterface> xInterface = xMultiServiceFactory->createInstance(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.SpreadsheetSettings")));
[ + - ]
2488 [ + - ]: 93 : uno::Reference <beans::XPropertySet> xProperties(xInterface, uno::UNO_QUERY);
2489 [ + - ]: 93 : if (xProperties.is())
2490 [ + - ]: 93 : SvXMLUnitConverter::convertPropertySet(xProperties, aConfigProps);
2491 : 93 : }
2492 : : }
2493 : 93 : }
2494 : :
2495 : 0 : sal_Int32 ScXMLImport::SetCurrencySymbol(const sal_Int32 nKey, const rtl::OUString& rCurrency)
2496 : : {
2497 [ # # ]: 0 : uno::Reference <util::XNumberFormatsSupplier> xNumberFormatsSupplier(GetNumberFormatsSupplier());
2498 [ # # ]: 0 : if (xNumberFormatsSupplier.is())
2499 : : {
2500 [ # # ][ # # ]: 0 : uno::Reference <util::XNumberFormats> xLocalNumberFormats(xNumberFormatsSupplier->getNumberFormats());
2501 [ # # ]: 0 : if (xLocalNumberFormats.is())
2502 : : {
2503 : 0 : rtl::OUString sFormatString;
2504 : : try
2505 : : {
2506 [ # # ][ # # ]: 0 : uno::Reference <beans::XPropertySet> xProperties(xLocalNumberFormats->getByKey(nKey));
2507 [ # # ]: 0 : if (xProperties.is())
2508 : : {
2509 : 0 : lang::Locale aLocale;
2510 [ # # ][ # # ]: 0 : if (GetDocument() && (xProperties->getPropertyValue(sLocale) >>= aLocale))
[ # # ][ # # ]
[ # # ]
[ # # # # ]
[ # # ]
2511 : : {
2512 : : {
2513 [ # # ]: 0 : ScXMLImport::MutexGuard aGuard(*this);
2514 [ # # ][ # # ]: 0 : LocaleDataWrapper aLocaleData( GetDocument()->GetServiceManager(), aLocale );
2515 : 0 : rtl::OUStringBuffer aBuffer(15);
2516 [ # # ]: 0 : aBuffer.appendAscii("#");
2517 [ # # ][ # # ]: 0 : aBuffer.append( aLocaleData.getNumThousandSep() );
2518 [ # # ]: 0 : aBuffer.appendAscii("##0");
2519 [ # # ][ # # ]: 0 : aBuffer.append( aLocaleData.getNumDecimalSep() );
2520 [ # # ]: 0 : aBuffer.appendAscii("00 [$");
2521 [ # # ]: 0 : aBuffer.append(rCurrency);
2522 [ # # ]: 0 : aBuffer.appendAscii("]");
2523 [ # # ][ # # ]: 0 : sFormatString = aBuffer.makeStringAndClear();
[ # # ]
2524 : : }
2525 [ # # ][ # # ]: 0 : sal_Int32 nNewKey = xLocalNumberFormats->queryKey(sFormatString, aLocale, true);
2526 [ # # ]: 0 : if (nNewKey == -1)
2527 [ # # ][ # # ]: 0 : nNewKey = xLocalNumberFormats->addNew(sFormatString, aLocale);
2528 : 0 : return nNewKey;
2529 [ # # ]: 0 : }
2530 [ # # ]: 0 : }
2531 : : }
2532 [ # # # # ]: 0 : catch ( const util::MalformedNumberFormatException& rException )
2533 : : {
2534 [ # # ]: 0 : rtl::OUString sErrorMessage(RTL_CONSTASCII_USTRINGPARAM("Fehler im Formatstring "));
2535 : 0 : sErrorMessage += sFormatString;
2536 [ # # ]: 0 : sErrorMessage += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" an Position "));
2537 : 0 : sErrorMessage += rtl::OUString::valueOf(rException.CheckPos);
2538 [ # # ]: 0 : uno::Sequence<rtl::OUString> aSeq(1);
2539 [ # # ]: 0 : aSeq[0] = sErrorMessage;
2540 : 0 : uno::Reference<xml::sax::XLocator> xLocator;
2541 [ # # # # ]: 0 : SetError(XMLERROR_API | XMLERROR_FLAG_ERROR, aSeq, rException.Message, xLocator);
2542 [ # # ]: 0 : }
2543 [ # # ]: 0 : }
2544 : : }
2545 : 0 : return nKey;
2546 : : }
2547 : :
2548 : 0 : bool ScXMLImport::IsCurrencySymbol(const sal_Int32 nNumberFormat, const rtl::OUString& sCurrentCurrency, const rtl::OUString& sBankSymbol)
2549 : : {
2550 [ # # ]: 0 : uno::Reference <util::XNumberFormatsSupplier> xNumberFormatsSupplier(GetNumberFormatsSupplier());
2551 [ # # ]: 0 : if (xNumberFormatsSupplier.is())
2552 : : {
2553 [ # # ][ # # ]: 0 : uno::Reference <util::XNumberFormats> xLocalNumberFormats(xNumberFormatsSupplier->getNumberFormats());
2554 [ # # ]: 0 : if (xLocalNumberFormats.is())
2555 : : {
2556 : : try
2557 : : {
2558 [ # # ][ # # ]: 0 : uno::Reference <beans::XPropertySet> xNumberPropertySet(xLocalNumberFormats->getByKey(nNumberFormat));
2559 [ # # ]: 0 : if (xNumberPropertySet.is())
2560 : : {
2561 : 0 : rtl::OUString sTemp;
2562 [ # # ][ # # ]: 0 : if ( xNumberPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_CURRENCYSYMBOL))) >>= sTemp)
[ # # ][ # # ]
2563 : : {
2564 [ # # ]: 0 : if (sCurrentCurrency.equals(sTemp))
2565 : 0 : return true;
2566 : : // #i61657# This may be a legacy currency symbol that changed in the meantime.
2567 [ # # ][ # # ]: 0 : if (SvNumberFormatter::GetLegacyOnlyCurrencyEntry( sCurrentCurrency, sBankSymbol) != NULL)
[ # # ][ # # ]
[ # # ][ # # ]
2568 : 0 : return true;
2569 : : // In the rare case that sCurrentCurrency is not the
2570 : : // currency symbol, but a matching ISO code
2571 : : // abbreviation instead that was obtained through
2572 : : // XMLNumberFormatAttributesExportHelper::GetCellType(),
2573 : : // check with the number format's symbol. This happens,
2574 : : // for example, in the es_BO locale, where a legacy
2575 : : // B$,BOB matched B$->BOP, which leads to
2576 : : // sCurrentCurrency being BOP, and the previous call
2577 : : // with BOP,BOB didn't find an entry, but B$,BOB will.
2578 [ # # ][ # # ]: 0 : return SvNumberFormatter::GetLegacyOnlyCurrencyEntry( sTemp, sBankSymbol) != NULL;
[ # # ][ # # ]
[ # # ]
2579 [ # # ]: 0 : }
2580 [ # # ][ # # ]: 0 : }
2581 : : }
2582 [ # # ]: 0 : catch ( uno::Exception& )
2583 : : {
2584 : : OSL_FAIL("Numberformat not found");
2585 : : }
2586 [ # # ]: 0 : }
2587 : : }
2588 : 0 : return false;
2589 : : }
2590 : :
2591 : 652 : void ScXMLImport::SetType(uno::Reference <beans::XPropertySet>& rProperties,
2592 : : sal_Int32& rNumberFormat,
2593 : : const sal_Int16 nCellType,
2594 : : const rtl::OUString& rCurrency)
2595 : : {
2596 [ + + ][ + + ]: 652 : if ((nCellType != util::NumberFormat::TEXT) && (nCellType != util::NumberFormat::UNDEFINED))
2597 : : {
2598 [ + + ]: 228 : if (rNumberFormat == -1)
2599 [ + - ][ + - ]: 164 : rProperties->getPropertyValue( sNumberFormat ) >>= rNumberFormat;
2600 : : OSL_ENSURE(rNumberFormat != -1, "no NumberFormat");
2601 : : bool bIsStandard;
2602 : : // sCurrentCurrency may be the ISO code abbreviation if the currency
2603 : : // symbol matches such, or if no match found the symbol itself!
2604 : 228 : rtl::OUString sCurrentCurrency;
2605 : : sal_Int32 nCurrentCellType(
2606 : : GetNumberFormatAttributesExportHelper()->GetCellType(
2607 [ + - ][ + - ]: 228 : rNumberFormat, sCurrentCurrency, bIsStandard) & ~util::NumberFormat::DEFINED);
2608 [ + + ][ + + ]: 240 : if ((nCellType != nCurrentCellType) && !((nCellType == util::NumberFormat::NUMBER &&
[ - + ]
2609 : : ((nCurrentCellType == util::NumberFormat::SCIENTIFIC) ||
2610 : : (nCurrentCellType == util::NumberFormat::FRACTION) ||
2611 : : (nCurrentCellType == util::NumberFormat::LOGICAL) ||
2612 [ + + ][ - + ]: 21 : (nCurrentCellType == 0))) || (nCurrentCellType == util::NumberFormat::TEXT)) && !((nCellType == util::NumberFormat::DATETIME) &&
[ # # ][ # # ]
[ + - ]
2613 [ # # ]: 0 : (nCurrentCellType == util::NumberFormat::DATE)))
2614 : : {
2615 [ + + ]: 12 : if (!xNumberFormats.is())
2616 : : {
2617 [ + - ]: 6 : uno::Reference <util::XNumberFormatsSupplier> xNumberFormatsSupplier(GetNumberFormatsSupplier());
2618 [ + - ]: 6 : if (xNumberFormatsSupplier.is())
2619 [ + - ][ + - ]: 6 : xNumberFormats.set(xNumberFormatsSupplier->getNumberFormats());
[ + - ]
2620 : : }
2621 [ + - ]: 12 : if (xNumberFormats.is())
2622 : : {
2623 : : try
2624 : : {
2625 [ + - ][ + - ]: 12 : uno::Reference < beans::XPropertySet> xNumberFormatProperties(xNumberFormats->getByKey(rNumberFormat));
2626 [ + - ]: 12 : if (xNumberFormatProperties.is())
2627 : : {
2628 [ + - ]: 12 : if (nCellType != util::NumberFormat::CURRENCY)
2629 : : {
2630 : 12 : lang::Locale aLocale;
2631 [ + - ][ + - ]: 12 : if ( xNumberFormatProperties->getPropertyValue(sLocale) >>= aLocale )
[ + - ][ + - ]
2632 : : {
2633 [ + + ]: 12 : if (!xNumberFormatTypes.is())
2634 [ + - ][ + - ]: 6 : xNumberFormatTypes.set(uno::Reference <util::XNumberFormatTypes>(xNumberFormats, uno::UNO_QUERY));
2635 [ + - ][ + - ]: 12 : rProperties->setPropertyValue( sNumberFormat, uno::makeAny(xNumberFormatTypes->getStandardFormat(nCellType, aLocale)) );
[ + - ][ + - ]
[ + - ]
2636 : 12 : }
2637 : : }
2638 [ # # ][ # # ]: 0 : else if (!rCurrency.isEmpty() && !sCurrentCurrency.isEmpty())
[ # # ]
2639 : : {
2640 [ # # ]: 0 : if (!sCurrentCurrency.equals(rCurrency))
2641 [ # # ][ # # ]: 0 : if (!IsCurrencySymbol(rNumberFormat, sCurrentCurrency, rCurrency))
2642 [ # # ][ # # ]: 0 : rProperties->setPropertyValue( sNumberFormat, uno::makeAny(SetCurrencySymbol(rNumberFormat, rCurrency)));
[ # # ][ # # ]
2643 : : }
2644 [ # # ]: 12 : }
2645 : : }
2646 [ # # ]: 0 : catch ( uno::Exception& )
2647 : : {
2648 : : OSL_FAIL("Numberformat not found");
2649 : : }
2650 : 12 : }
2651 : : }
2652 : : else
2653 : : {
2654 [ + + ][ + - ]: 219 : if ((nCellType == util::NumberFormat::CURRENCY) && !rCurrency.isEmpty() && !sCurrentCurrency.isEmpty() &&
[ + - - + ]
[ # # ][ - + ]
2655 [ # # ]: 3 : !sCurrentCurrency.equals(rCurrency) && !IsCurrencySymbol(rNumberFormat, sCurrentCurrency, rCurrency))
2656 [ # # ][ # # ]: 0 : rProperties->setPropertyValue( sNumberFormat, uno::makeAny(SetCurrencySymbol(rNumberFormat, rCurrency)));
[ # # ][ # # ]
2657 : 228 : }
2658 : : }
2659 : 652 : }
2660 : :
2661 : 1559 : void ScXMLImport::AddStyleRange(const table::CellRangeAddress& rCellRange)
2662 : : {
2663 [ + + ][ + - ]: 1559 : if (!xSheetCellRanges.is() && GetModel().is())
[ + + ]
2664 : : {
2665 [ + - ]: 93 : uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
2666 [ + - ]: 93 : if (xMultiServiceFactory.is())
2667 [ + - ][ + - ]: 93 : xSheetCellRanges.set(uno::Reference <sheet::XSheetCellRangeContainer>(xMultiServiceFactory->createInstance(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sheet.SheetCellRanges"))), uno::UNO_QUERY));
[ + - ][ + - ]
[ + - ]
2668 : 93 : OSL_ENSURE(xSheetCellRanges.is(), "didn't get SheetCellRanges");
2669 : :
2670 : : }
2671 : 1559 : xSheetCellRanges->addRangeAddress(rCellRange, false);
2672 : 1559 : }
2673 : :
2674 : 652 : void ScXMLImport::SetStyleToRanges()
2675 : : {
2676 [ + - ]: 652 : if (!sPrevStyleName.isEmpty())
2677 : : {
2678 [ + - ]: 652 : uno::Reference <beans::XPropertySet> xProperties (xSheetCellRanges, uno::UNO_QUERY);
2679 [ + - ]: 652 : if (xProperties.is())
2680 : : {
2681 [ + - ]: 652 : XMLTableStylesContext *pStyles((XMLTableStylesContext *)GetAutoStyles());
2682 : : XMLTableStyleContext* pStyle( pStyles ? (XMLTableStyleContext *)pStyles->FindStyleChildContext(
2683 [ + - ][ + - ]: 652 : XML_STYLE_FAMILY_TABLE_CELL, sPrevStyleName, true) : NULL );
2684 [ + + ]: 652 : if (pStyle)
2685 : : {
2686 [ + - ]: 344 : pStyle->FillPropertySet(xProperties);
2687 [ + - ]: 344 : sal_Int32 nNumberFormat(pStyle->GetNumberFormat());
2688 [ + - ]: 344 : SetType(xProperties, nNumberFormat, nPrevCellType, sPrevCurrency);
2689 : :
2690 : : // store first cell of first range for each style, once per sheet
2691 [ + - ][ + - ]: 344 : uno::Sequence<table::CellRangeAddress> aAddresses(xSheetCellRanges->getRangeAddresses());
2692 [ + - ]: 344 : if ( aAddresses.getLength() > 0 )
2693 : : {
2694 [ + - ]: 344 : const table::CellRangeAddress& rRange = aAddresses[0];
2695 [ + + ]: 344 : if ( rRange.Sheet != pStyle->GetLastSheet() )
2696 : : {
2697 [ + - ][ + - ]: 333 : ScSheetSaveData* pSheetData = ScModelObj::getImplementation(GetModel())->GetSheetSaveData();
2698 : : pSheetData->AddCellStyle( sPrevStyleName,
2699 [ + - ]: 333 : ScAddress( (SCCOL)rRange.StartColumn, (SCROW)rRange.StartRow, (SCTAB)rRange.Sheet ) );
2700 : 333 : pStyle->SetLastSheet(rRange.Sheet);
2701 : : }
2702 [ + - ]: 344 : }
2703 : : }
2704 : : else
2705 : : {
2706 [ + - ][ + - ]: 308 : xProperties->setPropertyValue(sCellStyle, uno::makeAny(GetStyleDisplayName( XML_STYLE_FAMILY_TABLE_CELL, sPrevStyleName )));
[ + - ][ + - ]
2707 [ + - ][ + - ]: 308 : sal_Int32 nNumberFormat(GetStyleNumberFormats()->GetStyleNumberFormat(sPrevStyleName));
2708 : 308 : bool bInsert(nNumberFormat == -1);
2709 [ + - ]: 308 : SetType(xProperties, nNumberFormat, nPrevCellType, sPrevCurrency);
2710 [ + + ]: 308 : if (bInsert)
2711 [ + - ][ + - ]: 308 : GetStyleNumberFormats()->AddStyleNumberFormat(sPrevStyleName, nNumberFormat);
2712 : : }
2713 : 652 : }
2714 : : }
2715 [ + - ]: 652 : if (GetModel().is())
2716 : : {
2717 [ + - ]: 652 : uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
2718 [ + - ]: 652 : if (xMultiServiceFactory.is())
2719 : : xSheetCellRanges.set(uno::Reference <sheet::XSheetCellRangeContainer>(
2720 [ + - ]: 652 : xMultiServiceFactory->createInstance(
2721 : 652 : rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sheet.SheetCellRanges"))),
2722 [ + - ][ + - ]: 652 : uno::UNO_QUERY));
[ + - ][ + - ]
2723 : : }
2724 : : OSL_ENSURE(xSheetCellRanges.is(), "didn't get SheetCellRanges");
2725 : 652 : }
2726 : :
2727 : 1559 : void ScXMLImport::SetStyleToRange(const ScRange& rRange, const rtl::OUString* pStyleName,
2728 : : const sal_Int16 nCellType, const rtl::OUString* pCurrency)
2729 : : {
2730 [ + + ]: 1559 : if (sPrevStyleName.isEmpty())
2731 : : {
2732 : 224 : nPrevCellType = nCellType;
2733 [ + - ]: 224 : if (pStyleName)
2734 : 224 : sPrevStyleName = *pStyleName;
2735 [ - + ]: 224 : if (pCurrency)
2736 : 0 : sPrevCurrency = *pCurrency;
2737 [ - + ]: 224 : else if (!sPrevCurrency.isEmpty())
2738 : 0 : sPrevCurrency = sEmpty;
2739 : : }
2740 [ + + ]: 3371 : else if ((nCellType != nPrevCellType) ||
[ + - + + ]
[ - + # # ]
[ - + # # ]
[ + - - + ]
[ + + ]
2741 : 1129 : ((pStyleName && !pStyleName->equals(sPrevStyleName)) ||
2742 : 0 : (!pStyleName && !sPrevStyleName.isEmpty())) ||
2743 : 0 : ((pCurrency && !pCurrency->equals(sPrevCurrency)) ||
2744 : 907 : (!pCurrency && !sPrevCurrency.isEmpty())))
2745 : : {
2746 [ + - ]: 428 : SetStyleToRanges();
2747 : 428 : nPrevCellType = nCellType;
2748 [ + - ]: 428 : if (pStyleName)
2749 : 428 : sPrevStyleName = *pStyleName;
2750 [ # # ]: 0 : else if(!sPrevStyleName.isEmpty())
2751 : 0 : sPrevStyleName = sEmpty;
2752 [ + + ]: 428 : if (pCurrency)
2753 : 3 : sPrevCurrency = *pCurrency;
2754 [ + + ]: 425 : else if(!sPrevCurrency.isEmpty())
2755 : 3 : sPrevCurrency = sEmpty;
2756 : : }
2757 : 1559 : table::CellRangeAddress aCellRange;
2758 : 1559 : aCellRange.StartColumn = rRange.aStart.Col();
2759 : 1559 : aCellRange.StartRow = rRange.aStart.Row();
2760 : 1559 : aCellRange.Sheet = rRange.aStart.Tab();
2761 : 1559 : aCellRange.EndColumn = rRange.aEnd.Col();
2762 : 1559 : aCellRange.EndRow = rRange.aEnd.Row();
2763 [ + - ]: 1559 : AddStyleRange(aCellRange);
2764 : 1559 : }
2765 : :
2766 : 6 : bool ScXMLImport::SetNullDateOnUnitConverter()
2767 : : {
2768 [ + + ]: 6 : if (!bNullDateSetted)
2769 : 3 : bNullDateSetted = GetMM100UnitConverter().setNullDate(GetModel());
2770 : : OSL_ENSURE(bNullDateSetted, "could not set the null date");
2771 : 6 : return bNullDateSetted;
2772 : : }
2773 : :
2774 : 228 : XMLNumberFormatAttributesExportHelper* ScXMLImport::GetNumberFormatAttributesExportHelper()
2775 : : {
2776 [ + + ]: 228 : if (!pNumberFormatAttributesExportHelper)
2777 [ + - ]: 55 : pNumberFormatAttributesExportHelper = new XMLNumberFormatAttributesExportHelper(GetNumberFormatsSupplier());
2778 : 228 : return pNumberFormatAttributesExportHelper;
2779 : : }
2780 : :
2781 : 513 : ScMyStyleNumberFormats* ScXMLImport::GetStyleNumberFormats()
2782 : : {
2783 [ + + ]: 513 : if (!pStyleNumberFormats)
2784 [ + - ]: 91 : pStyleNumberFormats = new ScMyStyleNumberFormats();
2785 : 513 : return pStyleNumberFormats;
2786 : : }
2787 : :
2788 : 224 : void ScXMLImport::SetStylesToRangesFinished()
2789 : : {
2790 : 224 : SetStyleToRanges();
2791 : 224 : sPrevStyleName = sEmpty;
2792 : 224 : }
2793 : :
2794 : : // XImporter
2795 : 378 : void SAL_CALL ScXMLImport::setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc )
2796 : : throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
2797 : : {
2798 [ + - ]: 378 : ScXMLImport::MutexGuard aGuard(*this);
2799 [ + - ]: 378 : SvXMLImport::setTargetDocument( xDoc );
2800 : :
2801 [ + - ]: 378 : uno::Reference<frame::XModel> xModel(xDoc, uno::UNO_QUERY);
2802 [ + - ]: 378 : pDoc = ScXMLConverter::GetScDocument( xModel );
2803 : : OSL_ENSURE( pDoc, "ScXMLImport::setTargetDocument - no ScDocument!" );
2804 [ - + ]: 378 : if (!pDoc)
2805 [ # # ]: 0 : throw lang::IllegalArgumentException();
2806 : :
2807 : 378 : bFromWrapper = pDoc->IsXMLFromWrapper(); // UnlockSolarMutex below still works normally
2808 : :
2809 [ + - ]: 378 : uno::Reference<document::XActionLockable> xActionLockable(xDoc, uno::UNO_QUERY);
2810 [ + - ]: 378 : if (xActionLockable.is())
2811 [ + - ][ + - ]: 378 : xActionLockable->addActionLock();
[ + - ]
2812 : 378 : }
2813 : :
2814 : : // XServiceInfo
2815 : 0 : ::rtl::OUString SAL_CALL ScXMLImport::getImplementationName( )
2816 : : throw(::com::sun::star::uno::RuntimeException)
2817 : : {
2818 [ # # # # : 0 : switch( getImportFlags() )
# # ]
2819 : : {
2820 : : case IMPORT_ALL:
2821 : 0 : return ScXMLImport_getImplementationName();
2822 : : case (IMPORT_STYLES|IMPORT_MASTERSTYLES|IMPORT_AUTOSTYLES|IMPORT_FONTDECLS):
2823 : 0 : return ScXMLImport_Styles_getImplementationName();
2824 : : case (IMPORT_AUTOSTYLES|IMPORT_CONTENT|IMPORT_SCRIPTS|IMPORT_FONTDECLS):
2825 : 0 : return ScXMLImport_Content_getImplementationName();
2826 : : case IMPORT_META:
2827 : 0 : return ScXMLImport_Meta_getImplementationName();
2828 : : case IMPORT_SETTINGS:
2829 : 0 : return ScXMLImport_Settings_getImplementationName();
2830 : : default:
2831 : : // generic name for 'unknown' cases
2832 : 0 : return ScXMLImport_getImplementationName();
2833 : : }
2834 : : }
2835 : :
2836 : : // ::com::sun::star::xml::sax::XDocumentHandler
2837 : 373 : void SAL_CALL ScXMLImport::startDocument(void)
2838 : : throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException )
2839 : : {
2840 [ + - ]: 373 : ScXMLImport::MutexGuard aGuard(*this);
2841 [ + - ]: 373 : SvXMLImport::startDocument();
2842 [ + - ][ + + ]: 373 : if (pDoc && !pDoc->IsImportingXML())
[ + + ]
2843 : : {
2844 [ + - ][ + - ]: 1 : ScModelObj::getImplementation(GetModel())->BeforeXMLLoading();
2845 : 1 : bSelfImportingXMLSet = true;
2846 : : }
2847 : :
2848 : : // if content and styles are loaded with separate imports,
2849 : : // set bLatinDefaultStyle flag at the start of the content import
2850 : 373 : sal_uInt16 nFlags = getImportFlags();
2851 [ + - ][ + + ]: 373 : if ( ( nFlags & IMPORT_CONTENT ) && !( nFlags & IMPORT_STYLES ) )
2852 [ + - ]: 93 : ExamineDefaultStyle();
2853 : :
2854 [ + + ]: 373 : if (getImportFlags() & IMPORT_CONTENT)
2855 : : {
2856 [ + - ]: 93 : if (GetModel().is())
2857 : : {
2858 : : // store initial namespaces, to find the ones that were added from the file later
2859 [ + - ][ + - ]: 93 : ScSheetSaveData* pSheetData = ScModelObj::getImplementation(GetModel())->GetSheetSaveData();
2860 : 93 : const SvXMLNamespaceMap& rNamespaces = GetNamespaceMap();
2861 [ + - ]: 93 : pSheetData->StoreInitialNamespaces(rNamespaces);
2862 : : }
2863 [ + - ]: 373 : }
2864 : 373 : }
2865 : :
2866 : 74 : sal_Int32 ScXMLImport::GetRangeType(const rtl::OUString sRangeType) const
2867 : : {
2868 : 74 : sal_Int32 nRangeType(0);
2869 : 74 : rtl::OUStringBuffer sBuffer;
2870 : 74 : sal_Int16 i = 0;
2871 [ + + ]: 148 : while (i <= sRangeType.getLength())
2872 : : {
2873 [ + - ][ + - ]: 74 : if ((sRangeType[i] == ' ') || (i == sRangeType.getLength()))
[ + - ]
2874 : : {
2875 [ + - ]: 74 : rtl::OUString sTemp = sBuffer.makeStringAndClear();
2876 [ - + ]: 74 : if (sTemp.compareToAscii(SC_REPEAT_COLUMN) == 0)
2877 : 0 : nRangeType |= sheet::NamedRangeFlag::COLUMN_HEADER;
2878 [ - + ]: 74 : else if (sTemp.compareToAscii(SC_REPEAT_ROW) == 0)
2879 : 0 : nRangeType |= sheet::NamedRangeFlag::ROW_HEADER;
2880 [ - + ]: 74 : else if (sTemp.compareToAscii(SC_FILTER) == 0)
2881 : 0 : nRangeType |= sheet::NamedRangeFlag::FILTER_CRITERIA;
2882 [ - + ]: 74 : else if (sTemp.compareToAscii(SC_PRINT_RANGE) == 0)
2883 : 74 : nRangeType |= sheet::NamedRangeFlag::PRINT_AREA;
2884 : : }
2885 [ # # ]: 0 : else if (i < sRangeType.getLength())
2886 [ # # ]: 0 : sBuffer.append(sRangeType[i]);
2887 : 74 : ++i;
2888 : : }
2889 : 74 : return nRangeType;
2890 : : }
2891 : :
2892 : 93 : void ScXMLImport::SetLabelRanges()
2893 : : {
2894 : 93 : ScMyLabelRanges* pLabelRanges = GetLabelRanges();
2895 [ - + ]: 93 : if (pLabelRanges)
2896 : : {
2897 [ # # ]: 0 : uno::Reference <beans::XPropertySet> xPropertySet (GetModel(), uno::UNO_QUERY);
2898 [ # # ]: 0 : if (xPropertySet.is())
2899 : : {
2900 [ # # ][ # # ]: 0 : uno::Any aColAny = xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNO_COLLABELRNG)));
[ # # ]
2901 [ # # ][ # # ]: 0 : uno::Any aRowAny = xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNO_ROWLABELRNG)));
[ # # ]
2902 : :
2903 : 0 : uno::Reference< sheet::XLabelRanges > xColRanges;
2904 : 0 : uno::Reference< sheet::XLabelRanges > xRowRanges;
2905 : :
2906 [ # # ][ # # ]: 0 : if ( ( aColAny >>= xColRanges ) && ( aRowAny >>= xRowRanges ) )
[ # # ][ # # ]
[ # # ]
2907 : : {
2908 : 0 : table::CellRangeAddress aLabelRange;
2909 : 0 : table::CellRangeAddress aDataRange;
2910 : :
2911 : 0 : ScMyLabelRanges::iterator aItr = pLabelRanges->begin();
2912 [ # # ]: 0 : while (aItr != pLabelRanges->end())
2913 : : {
2914 : 0 : sal_Int32 nOffset1(0);
2915 : 0 : sal_Int32 nOffset2(0);
2916 : 0 : FormulaGrammar::AddressConvention eConv = FormulaGrammar::CONV_OOO;
2917 : :
2918 [ # # ][ # # ]: 0 : if (ScRangeStringConverter::GetRangeFromString( aLabelRange, (*aItr)->sLabelRangeStr, GetDocument(), eConv, nOffset1 ) &&
[ # # ][ # # ]
2919 [ # # ]: 0 : ScRangeStringConverter::GetRangeFromString( aDataRange, (*aItr)->sDataRangeStr, GetDocument(), eConv, nOffset2 ))
2920 : : {
2921 [ # # ]: 0 : if ( (*aItr)->bColumnOrientation )
2922 [ # # ][ # # ]: 0 : xColRanges->addNew( aLabelRange, aDataRange );
2923 : : else
2924 [ # # ][ # # ]: 0 : xRowRanges->addNew( aLabelRange, aDataRange );
2925 : : }
2926 : :
2927 [ # # ]: 0 : delete *aItr;
2928 [ # # ]: 0 : aItr = pLabelRanges->erase(aItr);
2929 : : }
2930 : 0 : }
2931 : 0 : }
2932 : : }
2933 : 93 : }
2934 : :
2935 : : namespace {
2936 : :
2937 : : /**
2938 : : * Used to switch off document modify and broadcast while populating named
2939 : : * ranges during import.
2940 : : */
2941 : : class NamedRangesSwitch
2942 : : {
2943 : : public:
2944 : : NamedRangesSwitch(Reference<beans::XPropertySet>& xPropSet) :
2945 : : mxPropSet(xPropSet), maPropName(RTL_CONSTASCII_USTRINGPARAM(SC_UNO_MODIFY_BROADCAST))
2946 : : {
2947 : : uno::Any any;
2948 : : any <<= false;
2949 : : mxPropSet->setPropertyValue(maPropName, any);
2950 : : }
2951 : :
2952 : : ~NamedRangesSwitch()
2953 : : {
2954 : : uno::Any any;
2955 : : any <<= sal_True;
2956 : : mxPropSet->setPropertyValue(maPropName, any);
2957 : : }
2958 : :
2959 : : private:
2960 : : Reference<beans::XPropertySet>& mxPropSet;
2961 : : OUString maPropName;
2962 : : };
2963 : :
2964 : : }
2965 : :
2966 : : namespace {
2967 : :
2968 : : class RangeNameInserter : public ::std::unary_function<ScMyNamedExpression, void>
2969 : : {
2970 : : ScDocument* mpDoc;
2971 : : ScRangeName& mrRangeName;
2972 : : ScXMLImport& mrXmlImport;
2973 : :
2974 : : public:
2975 : 29 : RangeNameInserter(ScDocument* pDoc, ScRangeName& rRangeName, ScXMLImport& rXmlImport) :
2976 : 29 : mpDoc(pDoc), mrRangeName(rRangeName), mrXmlImport(rXmlImport) {}
2977 : :
2978 : 74 : void operator() (const ScMyNamedExpression& r) const
2979 : : {
2980 : : using namespace formula;
2981 : :
2982 : 74 : const ::rtl::OUString& aType = r.sRangeType;
2983 [ + - ]: 74 : sal_uInt32 nUnoType = mrXmlImport.GetRangeType(aType);
2984 : :
2985 : 74 : sal_uInt16 nNewType = RT_NAME;
2986 [ - + ]: 74 : if ( nUnoType & sheet::NamedRangeFlag::FILTER_CRITERIA ) nNewType |= RT_CRITERIA;
2987 [ - + ]: 74 : if ( nUnoType & sheet::NamedRangeFlag::PRINT_AREA ) nNewType |= RT_PRINTAREA;
2988 [ - + ]: 74 : if ( nUnoType & sheet::NamedRangeFlag::COLUMN_HEADER ) nNewType |= RT_COLHEADER;
2989 [ - + ]: 74 : if ( nUnoType & sheet::NamedRangeFlag::ROW_HEADER ) nNewType |= RT_ROWHEADER;
2990 : :
2991 [ + - ]: 74 : if (mpDoc)
2992 : : {
2993 : : // Insert a new name.
2994 : 74 : ScAddress aPos;
2995 : 74 : sal_Int32 nOffset = 0;
2996 : : bool bSuccess = ScRangeStringConverter::GetAddressFromString(
2997 [ + - ]: 74 : aPos, r.sBaseCellAddress, mpDoc, FormulaGrammar::CONV_OOO, nOffset);
2998 : :
2999 [ + - ]: 74 : if (bSuccess)
3000 : : {
3001 : 74 : ::rtl::OUString aContent = r.sContent;
3002 [ + + ]: 74 : if (!r.bIsExpression)
3003 [ + - ]: 68 : ScXMLConverter::ParseFormula(aContent, false);
3004 : :
3005 : : ScRangeData* pData = new ScRangeData(
3006 [ + - ][ + - ]: 74 : mpDoc, r.sName, aContent, aPos, nNewType, r.eGrammar);
[ + - ][ + - ]
3007 [ + - ]: 74 : mrRangeName.insert(pData);
3008 : : }
3009 : : }
3010 : 74 : }
3011 : : };
3012 : :
3013 : : }
3014 : :
3015 : 93 : void ScXMLImport::SetNamedRanges()
3016 : : {
3017 : 93 : ScMyNamedExpressions* pNamedExpressions = GetNamedExpressions();
3018 [ + + ]: 93 : if (!pNamedExpressions)
3019 : 76 : return;
3020 : :
3021 [ - + ]: 17 : if (!pDoc)
3022 : 0 : return;
3023 : :
3024 : : // Insert the namedRanges
3025 : 17 : ScRangeName* pRangeNames = pDoc->GetRangeName();
3026 [ + - ][ + - ]: 93 : ::std::for_each(pNamedExpressions->begin(), pNamedExpressions->end(), RangeNameInserter(pDoc, *pRangeNames, *this));
[ + - ]
3027 : : }
3028 : :
3029 : 93 : void ScXMLImport::SetSheetNamedRanges()
3030 : : {
3031 [ + - ]: 93 : if (!pDoc)
3032 : 93 : return;
3033 : :
3034 [ + - ][ + - ]: 93 : SheetNamedExpMap::const_iterator itr = maSheetNamedExpressions.begin(), itrEnd = maSheetNamedExpressions.end();
[ + - ][ + - ]
3035 [ + - ][ + - ]: 105 : for (; itr != itrEnd; ++itr)
[ + + ]
3036 : : {
3037 [ + - ]: 12 : SCTAB nTab = itr->first;
3038 [ + - ]: 12 : ScRangeName* pRangeNames = pDoc->GetRangeName(nTab);
3039 [ - + ]: 12 : if (!pRangeNames)
3040 : 0 : continue;
3041 : :
3042 [ + - ]: 12 : const ScMyNamedExpressions& rNames = *itr->second;
3043 [ + - ][ + - ]: 12 : ::std::for_each(rNames.begin(), rNames.end(), RangeNameInserter(pDoc, *pRangeNames, *this));
[ + - ]
3044 : : }
3045 : : }
3046 : :
3047 : 373 : void SAL_CALL ScXMLImport::endDocument(void)
3048 : : throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException )
3049 : : {
3050 [ + - ]: 373 : ScXMLImport::MutexGuard aGuard(*this);
3051 [ + + ]: 373 : if (getImportFlags() & IMPORT_CONTENT)
3052 : : {
3053 [ + - ]: 93 : if (GetModel().is())
3054 : : {
3055 [ + - ]: 93 : uno::Reference<document::XViewDataSupplier> xViewDataSupplier(GetModel(), uno::UNO_QUERY);
3056 [ + - ]: 93 : if (xViewDataSupplier.is())
3057 : : {
3058 [ + - ][ + - ]: 93 : uno::Reference<container::XIndexAccess> xIndexAccess(xViewDataSupplier->getViewData());
3059 [ + - ][ + - ]: 93 : if (xIndexAccess.is() && xIndexAccess->getCount() > 0)
[ + - ][ + - ]
[ + - ]
3060 : : {
3061 [ + - ]: 93 : uno::Sequence< beans::PropertyValue > aSeq;
3062 [ + - ][ + - ]: 93 : if (xIndexAccess->getByIndex(0) >>= aSeq)
[ + - ][ + - ]
3063 : : {
3064 : 93 : sal_Int32 nCount (aSeq.getLength());
3065 [ + + ]: 372 : for (sal_Int32 i = 0; i < nCount; ++i)
3066 : : {
3067 [ + - ]: 279 : rtl::OUString sName(aSeq[i].Name);
3068 [ + + ]: 279 : if (sName.compareToAscii(SC_ACTIVETABLE) == 0)
3069 : : {
3070 : 93 : rtl::OUString sValue;
3071 [ + - ][ + - ]: 93 : if(aSeq[i].Value >>= sValue)
3072 : : {
3073 [ + - ]: 93 : String sTabName(sValue);
3074 : 93 : SCTAB nTab(0);
3075 [ + - ][ + - ]: 93 : if (pDoc->GetTable(sTabName, nTab))
[ + - ]
3076 : : {
3077 [ + - ]: 93 : pDoc->SetVisibleTab(nTab);
3078 : 93 : i = nCount;
3079 [ + - ]: 93 : }
3080 : 93 : }
3081 : : }
3082 : 279 : }
3083 [ + - ]: 93 : }
3084 : 93 : }
3085 : : }
3086 [ + - ]: 93 : SetLabelRanges();
3087 [ + - ]: 93 : SetNamedRanges();
3088 [ + - ]: 93 : SetSheetNamedRanges();
3089 : : }
3090 [ + - ][ + - ]: 93 : GetProgressBarHelper()->End(); // make room for subsequent SfxProgressBars
3091 [ + - ]: 93 : if (pDoc)
3092 [ + - ]: 93 : pDoc->CompileXML();
3093 : :
3094 [ + - ][ + - ]: 93 : if (pDoc && GetModel().is())
[ + - ]
3095 : : {
3096 : : // set "valid stream" flags after loading (before UpdateRowHeights, so changed formula results
3097 : : // in UpdateRowHeights can already clear the flags again)
3098 [ + - ][ + - ]: 93 : ScSheetSaveData* pSheetData = ScModelObj::getImplementation(GetModel())->GetSheetSaveData();
3099 : :
3100 [ + - ]: 93 : SCTAB nTabCount = pDoc->GetTableCount();
3101 [ + + ]: 317 : for (SCTAB nTab=0; nTab<nTabCount; ++nTab)
3102 : : {
3103 [ + - ]: 224 : pDoc->SetDrawPageSize(nTab);
3104 [ + - ][ + + ]: 224 : if (!pSheetData->IsSheetBlocked( nTab ))
3105 [ + - ]: 209 : pDoc->SetStreamValid( nTab, true );
3106 : : }
3107 : : }
3108 [ + - ]: 93 : aTables.FixupOLEs();
3109 : : }
3110 [ + - ]: 373 : if (GetModel().is())
3111 : : {
3112 [ + - ]: 373 : uno::Reference<document::XActionLockable> xActionLockable(GetModel(), uno::UNO_QUERY);
3113 [ + - ]: 373 : if (xActionLockable.is())
3114 [ + - ][ + - ]: 373 : xActionLockable->removeActionLock();
3115 : : }
3116 [ + - ]: 373 : SvXMLImport::endDocument();
3117 : :
3118 [ + - ][ + + ]: 373 : if(pDoc && bSelfImportingXMLSet)
3119 [ + - ][ + - ]: 1 : ScModelObj::getImplementation(GetModel())->AfterXMLLoading(true);
3120 [ + - ]: 373 : pDoc->EnableAdjustHeight( true );
3121 : 373 : }
3122 : :
3123 : : // XEventListener
3124 : 2 : void ScXMLImport::DisposingModel()
3125 : : {
3126 : 2 : SvXMLImport::DisposingModel();
3127 : 2 : pDoc = NULL;
3128 : 2 : }
3129 : :
3130 : 3620 : ScXMLImport::MutexGuard::MutexGuard(ScXMLImport& rImport) :
3131 : 3620 : mrImport(rImport)
3132 : : {
3133 : 3620 : mrImport.LockSolarMutex();
3134 : 3620 : }
3135 : :
3136 : 3620 : ScXMLImport::MutexGuard::~MutexGuard()
3137 : : {
3138 : 3620 : mrImport.UnlockSolarMutex();
3139 : 3620 : }
3140 : :
3141 : 3775 : void ScXMLImport::LockSolarMutex()
3142 : : {
3143 : : // #i62677# When called from DocShell/Wrapper, the SolarMutex is already locked,
3144 : : // so there's no need to allocate (and later delete) the SolarMutexGuard.
3145 [ + + ]: 3775 : if (bFromWrapper)
3146 : : {
3147 : : DBG_TESTSOLARMUTEX();
3148 : 3775 : return;
3149 : : }
3150 : :
3151 [ + - ]: 380 : if (nSolarMutexLocked == 0)
3152 : : {
3153 : : OSL_ENSURE(!pSolarMutexGuard, "Solar Mutex is locked");
3154 [ + - ]: 380 : pSolarMutexGuard = new SolarMutexGuard();
3155 : : }
3156 : 380 : ++nSolarMutexLocked;
3157 : : }
3158 : :
3159 : :
3160 : 3775 : void ScXMLImport::UnlockSolarMutex()
3161 : : {
3162 [ + + ]: 3775 : if (nSolarMutexLocked > 0)
3163 : : {
3164 : 380 : nSolarMutexLocked--;
3165 [ + - ]: 380 : if (nSolarMutexLocked == 0)
3166 : : {
3167 : : OSL_ENSURE(pSolarMutexGuard, "Solar Mutex is always unlocked");
3168 [ + - ]: 380 : delete pSolarMutexGuard;
3169 : 380 : pSolarMutexGuard = NULL;
3170 : : }
3171 : : }
3172 : 3775 : }
3173 : :
3174 : 428 : sal_Int32 ScXMLImport::GetByteOffset()
3175 : : {
3176 : 428 : sal_Int32 nOffset = -1;
3177 : 428 : uno::Reference<xml::sax::XLocator> xLocator = GetLocator();
3178 [ + - ]: 428 : uno::Reference<io::XSeekable> xSeek( xLocator, uno::UNO_QUERY ); //! should use different interface
3179 [ + + ]: 428 : if ( xSeek.is() )
3180 [ + - ][ + - ]: 408 : nOffset = (sal_Int32)xSeek->getPosition();
3181 : 428 : return nOffset;
3182 : : }
3183 : :
3184 : 0 : void ScXMLImport::SetRangeOverflowType(sal_uInt32 nType)
3185 : : {
3186 : : // #i31130# Overflow is stored in the document, because the ScXMLImport object
3187 : : // isn't available in ScXMLImportWrapper::ImportFromComponent when using the
3188 : : // OOo->Oasis transformation.
3189 : :
3190 [ # # ]: 0 : if ( pDoc )
3191 : 0 : pDoc->SetRangeOverflowType( nType );
3192 : 0 : }
3193 : :
3194 : 6191 : void ScXMLImport::ProgressBarIncrement(bool bEditCell, sal_Int32 nInc)
3195 : : {
3196 : 6191 : nProgressCount += nInc;
3197 [ + + ][ + + ]: 6191 : if (bEditCell || nProgressCount > 100)
3198 : : {
3199 : 44 : GetProgressBarHelper()->Increment(nProgressCount);
3200 : 44 : nProgressCount = 0;
3201 : : }
3202 : 6191 : }
3203 : :
3204 : 1178 : void ScXMLImport::ExtractFormulaNamespaceGrammar(
3205 : : OUString& rFormula, OUString& rFormulaNmsp, FormulaGrammar::Grammar& reGrammar,
3206 : : const OUString& rAttrValue, bool bRestrictToExternalNmsp ) const
3207 : : {
3208 : : // parse the attribute value, extract namespace ID, literal namespace, and formula string
3209 : 1178 : rFormulaNmsp = OUString();
3210 : 1178 : sal_uInt16 nNsId = GetNamespaceMap()._GetKeyByAttrName( rAttrValue, 0, &rFormula, &rFormulaNmsp, false );
3211 : :
3212 : : // check if we have an ODF formula namespace
3213 [ - + + ]: 1178 : if( !bRestrictToExternalNmsp ) switch( nNsId )
[ + + ]
3214 : : {
3215 : : case XML_NAMESPACE_OOOC:
3216 : 0 : rFormulaNmsp = OUString(); // remove namespace string for built-in grammar
3217 : 0 : reGrammar = FormulaGrammar::GRAM_PODF;
3218 : 0 : return;
3219 : : case XML_NAMESPACE_OF:
3220 : 1073 : rFormulaNmsp = OUString(); // remove namespace string for built-in grammar
3221 : 1073 : reGrammar = FormulaGrammar::GRAM_ODFF;
3222 : 1073 : return;
3223 : : }
3224 : :
3225 : : /* Find default grammar for formulas without namespace. There may be
3226 : : documents in the wild that stored no namespace in ODF 1.0/1.1. Use
3227 : : GRAM_PODF then (old style ODF 1.0/1.1 formulas). The default for ODF
3228 : : 1.2 and later without namespace is GRAM_ODFF (OpenFormula). */
3229 : : FormulaGrammar::Grammar eDefaultGrammar =
3230 : 105 : (GetDocument()->GetStorageGrammar() == FormulaGrammar::GRAM_PODF) ?
3231 [ - + ]: 105 : FormulaGrammar::GRAM_PODF : FormulaGrammar::GRAM_ODFF;
3232 : :
3233 : : /* Check if we have no namespace at all. The value XML_NAMESPACE_NONE
3234 : : indicates that there is no colon. If the first character of the
3235 : : attribute value is the equality sign, the value XML_NAMESPACE_UNKNOWN
3236 : : indicates that there is a colon somewhere in the formula string. */
3237 [ + + ][ + - ]: 105 : if( (nNsId == XML_NAMESPACE_NONE) || ((nNsId == XML_NAMESPACE_UNKNOWN) && (rAttrValue.toChar() == '=')) )
[ - + ][ + + ]
3238 : : {
3239 : 93 : rFormula = rAttrValue; // return entire string as formula
3240 : 93 : reGrammar = eDefaultGrammar;
3241 : 93 : return;
3242 : : }
3243 : :
3244 : : /* Check if a namespace URL could be resolved from the attribute value.
3245 : : Use that namespace only, if the Calc document knows an associated
3246 : : external formula parser. This prevents that the range operator in
3247 : : conjunction with defined names is confused as namespaces prefix, e.g.
3248 : : in the expression 'table:A1' where 'table' is a named reference. */
3249 [ + - ]: 12 : if( ((nNsId & XML_NAMESPACE_UNKNOWN_FLAG) != 0) && !rFormulaNmsp.isEmpty() &&
[ - + # # ]
[ - + ]
3250 : 0 : GetDocument()->GetFormulaParserPool().hasFormulaParser( rFormulaNmsp ) )
3251 : : {
3252 : 0 : reGrammar = FormulaGrammar::GRAM_EXTERNAL;
3253 : 0 : return;
3254 : : }
3255 : :
3256 : : /* All attempts failed (e.g. no namespace and no leading equality sign, or
3257 : : an invalid namespace prefix), continue with the entire attribute value. */
3258 : 12 : rFormula = rAttrValue;
3259 : 12 : rFormulaNmsp = OUString(); // remove any namespace string
3260 : 1178 : reGrammar = eDefaultGrammar;
3261 : : }
3262 : :
3263 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|