diff options
author | Mohammed Abdul Azeem <azeemmysore@gmail.com> | 2017-06-29 23:39:07 +0530 |
---|---|---|
committer | Mohammed Abdul Azeem <azeemmysore@gmail.com> | 2017-07-01 06:32:03 +0200 |
commit | 4b5f5f868fa6a7c86535d251e77d8a6d956f2fa4 (patch) | |
tree | 288b13073c8220da91fcec9183b5844164ad079a /sc/source/filter/xml/XMLConsolidationContext.cxx | |
parent | cac5c9f6081590b0548d3116bc4cd4a2509ec576 (diff) |
Moving legacy contexts to FastContexts:
ScXMLTrackedChangesContext
ScXMLCalculationSettingsContext
ScXMLContentValidationsContext
ScXMLLabelRangesContext
ScXMLNamedExpressionsContext
ScXMLDatabaseRangesContext
ScXMLDatabaseRangeContext
ScXMLDataPilotTablesContext
ScXMLConsolidationContext
ScXMLDDELinksContext
ScXMLDataStreamContext
Change-Id: I702d30e01af5e3707d34303ddebc3d07913d67e3
Reviewed-on: https://gerrit.libreoffice.org/39397
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'sc/source/filter/xml/XMLConsolidationContext.cxx')
-rw-r--r-- | sc/source/filter/xml/XMLConsolidationContext.cxx | 64 |
1 files changed, 30 insertions, 34 deletions
diff --git a/sc/source/filter/xml/XMLConsolidationContext.cxx b/sc/source/filter/xml/XMLConsolidationContext.cxx index 217327a4a8cb..8e27b573de7b 100644 --- a/sc/source/filter/xml/XMLConsolidationContext.cxx +++ b/sc/source/filter/xml/XMLConsolidationContext.cxx @@ -24,54 +24,50 @@ #include "XMLConverter.hxx" #include <xmloff/nmspmap.hxx> #include <xmloff/xmltoken.hxx> +#include <xmloff/xmlnmspe.hxx> using namespace ::com::sun::star; using namespace xmloff::token; ScXMLConsolidationContext::ScXMLConsolidationContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const uno::Reference< xml::sax::XAttributeList >& xAttrList ) : - ScXMLImportContext( rImport, nPrfx, rLName ), + sal_Int32 /*nElement*/, + const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) : + ScXMLImportContext( rImport ), eFunction( SUBTOTAL_FUNC_NONE ), bLinkToSource( false ), bTargetAddr(false) { rImport.LockSolarMutex(); - if( !xAttrList.is() ) return; - - sal_Int16 nAttrCount = xAttrList->getLength(); - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetConsolidationAttrTokenMap(); - - for( sal_Int16 nIndex = 0; nIndex < nAttrCount; ++nIndex ) + if( xAttrList.is() ) { - const OUString& sAttrName (xAttrList->getNameByIndex( nIndex )); - const OUString& sValue (xAttrList->getValueByIndex( nIndex )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); + sax_fastparser::FastAttributeList *pAttribList = + static_cast< sax_fastparser::FastAttributeList *>( xAttrList.get() ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for( auto &aIter : *pAttribList ) { - case XML_TOK_CONSOLIDATION_ATTR_FUNCTION: - eFunction = ScXMLConverter::GetSubTotalFuncFromString( sValue ); - break; - case XML_TOK_CONSOLIDATION_ATTR_SOURCE_RANGES: - sSourceList = sValue; - break; - case XML_TOK_CONSOLIDATION_ATTR_TARGET_ADDRESS: - { - sal_Int32 nOffset(0); - bTargetAddr = ScRangeStringConverter::GetAddressFromString( - aTargetAddr, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ); - } + switch( aIter.getToken() ) + { + case XML_ELEMENT( TABLE, XML_FUNCTION ): + eFunction = ScXMLConverter::GetSubTotalFuncFromString( aIter.toString() ); + break; + case XML_ELEMENT( TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES ): + sSourceList = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_TARGET_CELL_ADDRESS ): + { + sal_Int32 nOffset(0); + bTargetAddr = ScRangeStringConverter::GetAddressFromString( + aTargetAddr, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ); + } + break; + case XML_ELEMENT( TABLE, XML_USE_LABEL ): + sUseLabel = aIter.toString(); break; - case XML_TOK_CONSOLIDATION_ATTR_USE_LABEL: - sUseLabel = sValue; - break; - case XML_TOK_CONSOLIDATION_ATTR_LINK_TO_SOURCE: - bLinkToSource = IsXMLToken(sValue, XML_TRUE); - break; + case XML_ELEMENT( TABLE, XML_LINK_TO_SOURCE_DATA ): + bLinkToSource = IsXMLToken( aIter.toCString(), XML_TRUE ); + break; + } } } } @@ -89,7 +85,7 @@ SvXMLImportContext *ScXMLConsolidationContext::CreateChildContext( return new SvXMLImportContext( GetImport(), nPrefix, rLName ); } -void ScXMLConsolidationContext::EndElement() +void SAL_CALL ScXMLConsolidationContext::endFastElement( sal_Int32 /*nElement*/ ) { if (bTargetAddr) { |