sc/source/filter/xml/xmldpimp.cxx | 1384 ++++++++++++++++---------------------- sc/source/filter/xml/xmldpimp.hxx | 208 +---- sc/source/filter/xml/xmlfilti.cxx | 75 -- sc/source/filter/xml/xmlfilti.hxx | 7 4 files changed, 690 insertions(+), 984 deletions(-)
New commits: commit e89548c16b39cd716925cc23f2eb9e54748233c7 Author: Mohammed Abdul Azeem <azeemmys...@gmail.com> Date: Sun Jul 23 20:04:33 2017 +0530 Moving legacy contexts to FastContexts: ScXMLDataPilotTableContext ScXMLDPSourceSQLContext ScXMLDPSourceTableContext ScXMLDPSourceQueryContext ScXMLSourceServiceContext ScXMLDataPilotGrandTotalContext ScXMLSourceCellRangeContext ScXMLDataPilotFieldContext ScXMLDataPilotFieldReferenceContext ScXMLDataPilotLevelContext ScXMLDataPilotDisplayInfoContext ScXMLDataPilotSortInfoContext ScXMLDataPilotLayoutInfoContext ScXMLDataPilotSubTotalsContext ScXMLDataPilotSubTotalContext ScXMLDataPilotMembersContext ScXMLDataPilotMemberContext ScXMLDataPilotGroupsContext ScXMLDataPilotGroupContext ScXMLDataPilotGroupMemberContext ScXMLDPFilterContext Change-Id: Ie01ddb0f740a1b41a44e4abc9fe1bea3ab32cb12 Reviewed-on: https://gerrit.libreoffice.org/40326 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/sc/source/filter/xml/xmldpimp.cxx b/sc/source/filter/xml/xmldpimp.cxx index f6fb88942fc8..27dfb894a7dd 100644 --- a/sc/source/filter/xml/xmldpimp.cxx +++ b/sc/source/filter/xml/xmldpimp.cxx @@ -69,25 +69,22 @@ ScXMLDataPilotTablesContext::~ScXMLDataPilotTablesContext() GetScImport().UnlockSolarMutex(); } -SvXMLImportContext *ScXMLDataPilotTablesContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotTablesContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotTablesElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_DATA_PILOT_TABLE : + case XML_ELEMENT( TABLE, XML_DATA_PILOT_TABLE ) : { - pContext = new ScXMLDataPilotTableContext( GetScImport(), nPrefix, - rLName, xAttrList); + pContext = new ScXMLDataPilotTableContext( GetScImport(), nElement, xAttrList); } break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } @@ -96,10 +93,9 @@ ScXMLDataPilotTableContext::GrandTotalItem::GrandTotalItem() : mbVisible(true) {} ScXMLDataPilotTableContext::ScXMLDataPilotTableContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) : - ScXMLImportContext( rImport, nPrfx, rLName ), + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList) : + ScXMLImportContext( rImport ), pDoc(GetScImport().GetDocument()), pDPObject(nullptr), pDPDimSaveData(nullptr), @@ -120,88 +116,86 @@ ScXMLDataPilotTableContext::ScXMLDataPilotTableContext( ScXMLImport& rImport, bDrillDown(true), bHeaderGridLayout(false) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotTableAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_DATA_PILOT_TABLE_ATTR_NAME : - { - sDataPilotTableName = sValue; - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_APPLICATION_DATA : + switch (aIter.getToken()) { - sApplicationData = sValue; - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_GRAND_TOTAL : - { - if (IsXMLToken(sValue, XML_BOTH)) + case XML_ELEMENT( TABLE, XML_NAME ): { - maRowGrandTotal.mbVisible = true; - maColGrandTotal.mbVisible = true; + sDataPilotTableName = aIter.toString(); } - else if (IsXMLToken(sValue, XML_ROW)) + break; + case XML_ELEMENT( TABLE, XML_APPLICATION_DATA ): { - maRowGrandTotal.mbVisible = true; - maColGrandTotal.mbVisible = false; + sApplicationData = aIter.toString(); } - else if (IsXMLToken(sValue, XML_COLUMN)) + break; + case XML_ELEMENT( TABLE, XML_GRAND_TOTAL ): { - maRowGrandTotal.mbVisible = false; - maColGrandTotal.mbVisible = true; + if (IsXMLToken(aIter, XML_BOTH)) + { + maRowGrandTotal.mbVisible = true; + maColGrandTotal.mbVisible = true; + } + else if (IsXMLToken(aIter, XML_ROW)) + { + maRowGrandTotal.mbVisible = true; + maColGrandTotal.mbVisible = false; + } + else if (IsXMLToken(aIter, XML_COLUMN)) + { + maRowGrandTotal.mbVisible = false; + maColGrandTotal.mbVisible = true; + } + else + { + maRowGrandTotal.mbVisible = false; + maColGrandTotal.mbVisible = false; + } } - else + break; + case XML_ELEMENT( TABLE, XML_IGNORE_EMPTY_ROWS ): { - maRowGrandTotal.mbVisible = false; - maColGrandTotal.mbVisible = false; + bIgnoreEmptyRows = IsXMLToken(aIter, XML_TRUE); } + break; + case XML_ELEMENT( TABLE, XML_IDENTIFY_CATEGORIES ): + { + bIdentifyCategories = IsXMLToken(aIter, XML_TRUE); + } + break; + case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ): + { + sal_Int32 nOffset(0); + bTargetRangeAddress = ScRangeStringConverter::GetRangeFromString( aTargetRangeAddress, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ); + } + break; + case XML_ELEMENT( TABLE, XML_BUTTONS ): + { + sButtons = aIter.toString(); + } + break; + case XML_ELEMENT( TABLE, XML_SHOW_FILTER_BUTTON ): + { + bShowFilter = IsXMLToken(aIter, XML_TRUE); + } + break; + case XML_ELEMENT( TABLE, XML_DRILL_DOWN_ON_DOUBLE_CLICK ): + { + bDrillDown = IsXMLToken(aIter, XML_TRUE); + } + break; + case XML_ELEMENT( TABLE, XML_HEADER_GRID_LAYOUT ): + { + bHeaderGridLayout = IsXMLToken(aIter, XML_TRUE); + } + break; } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_IGNORE_EMPTY_ROWS : - { - bIgnoreEmptyRows = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_IDENTIFY_CATEGORIES : - { - bIdentifyCategories = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS : - { - sal_Int32 nOffset(0); - bTargetRangeAddress = ScRangeStringConverter::GetRangeFromString( aTargetRangeAddress, sValue, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ); - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS : - { - sButtons = sValue; - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON : - { - bShowFilter = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN : - { - bDrillDown = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT : - { - bHeaderGridLayout = IsXMLToken(sValue, XML_TRUE); - } - break; } } @@ -213,58 +207,56 @@ ScXMLDataPilotTableContext::~ScXMLDataPilotTableContext() { } -SvXMLImportContext *ScXMLDataPilotTableContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotTableContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotTableElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SQL : + case XML_ELEMENT( TABLE, XML_DATABASE_SOURCE_SQL ): { - pContext = new ScXMLDPSourceSQLContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLDPSourceSQLContext(GetScImport(), nElement, xAttrList, this); nSourceType = SQL; } break; - case XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_TABLE : + case XML_ELEMENT( TABLE, XML_DATABASE_SOURCE_TABLE ): { - pContext = new ScXMLDPSourceTableContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLDPSourceTableContext(GetScImport(), nElement, xAttrList, this); nSourceType = TABLE; } break; - case XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_QUERY : + case XML_ELEMENT( TABLE, XML_DATABASE_SOURCE_QUERY ): { - pContext = new ScXMLDPSourceQueryContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLDPSourceQueryContext(GetScImport(), nElement, xAttrList, this); nSourceType = QUERY; } break; - case XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SERVICE : + case XML_ELEMENT( TABLE, XML_SOURCE_SERVICE ): { - pContext = new ScXMLSourceServiceContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLSourceServiceContext(GetScImport(), nElement, xAttrList, this); nSourceType = SERVICE; } break; - case XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL: - case XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL_EXT: + case XML_ELEMENT( TABLE, XML_DATA_PILOT_GRAND_TOTAL ): + case XML_ELEMENT( TABLE_EXT, XML_DATA_PILOT_GRAND_TOTAL ): { - pContext = new ScXMLDataPilotGrandTotalContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLDataPilotGrandTotalContext(GetScImport(), nElement, xAttrList, this); } break; - case XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_CELL_RANGE : + case XML_ELEMENT( TABLE, XML_SOURCE_CELL_RANGE ): { - pContext = new ScXMLSourceCellRangeContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLSourceCellRangeContext(GetScImport(), nElement, xAttrList, this); nSourceType = CELLRANGE; } break; - case XML_TOK_DATA_PILOT_TABLE_ELEM_DATA_PILOT_FIELD : - pContext = new ScXMLDataPilotFieldContext(GetScImport(), nPrefix, rLName, xAttrList, this); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_FIELD ): + pContext = new ScXMLDataPilotFieldContext(GetScImport(), nElement, xAttrList, this); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } @@ -459,7 +451,7 @@ void ScXMLDataPilotTableContext::AddGroupDim(const ScDPSaveGroupDimension& aGrou pDPDimSaveData->AddGroupDimension(aGroupDim); } -void ScXMLDataPilotTableContext::EndElement() +void SAL_CALL ScXMLDataPilotTableContext::endFastElement( sal_Int32 /*nElement*/ ) { if (!bTargetRangeAddress) return; @@ -583,40 +575,31 @@ void ScXMLDataPilotTableContext::SetGrandTotal( } ScXMLDPSourceSQLContext::ScXMLDPSourceSQLContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTempDataPilotTable) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotTable(pTempDataPilotTable) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDatabaseRangeSourceSQLAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_SOURCE_SQL_ATTR_DATABASE_NAME : + switch (aIter.getToken()) { - pDataPilotTable->SetDatabaseName(sValue); - } - break; - case XML_TOK_SOURCE_SQL_ATTR_SQL_STATEMENT : - { - pDataPilotTable->SetSourceObject(sValue); - } - break; - case XML_TOK_SOURCE_SQL_ATTR_PARSE_SQL_STATEMENT : - { - pDataPilotTable->SetNative(!IsXMLToken(sValue, XML_TRUE)); + case XML_ELEMENT( TABLE, XML_DATABASE_NAME ): + pDataPilotTable->SetDatabaseName(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_SQL_STATEMENT ): + pDataPilotTable->SetSourceObject(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_PARSE_SQL_STATEMENT ): + pDataPilotTable->SetNative(!IsXMLToken(aIter, XML_TRUE)); + break; } - break; } } } @@ -625,47 +608,30 @@ ScXMLDPSourceSQLContext::~ScXMLDPSourceSQLContext() { } -SvXMLImportContext *ScXMLDPSourceSQLContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLDPSourceSQLContext::EndElement() -{ -} - ScXMLDPSourceTableContext::ScXMLDPSourceTableContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTempDataPilotTable) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotTable(pTempDataPilotTable) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDatabaseRangeSourceTableAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_SOURCE_TABLE_ATTR_DATABASE_NAME : + switch (aIter.getToken()) { - pDataPilotTable->SetDatabaseName(sValue); - } - break; - case XML_TOK_SOURCE_TABLE_ATTR_TABLE_NAME : - { - pDataPilotTable->SetSourceObject(sValue); + case XML_ELEMENT( TABLE, XML_DATABASE_NAME ): + pDataPilotTable->SetDatabaseName(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_TABLE_NAME ): + case XML_ELEMENT( TABLE, XML_DATABASE_TABLE_NAME ): + pDataPilotTable->SetSourceObject(aIter.toString()); + break; } - break; } } } @@ -674,47 +640,29 @@ ScXMLDPSourceTableContext::~ScXMLDPSourceTableContext() { } -SvXMLImportContext *ScXMLDPSourceTableContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLDPSourceTableContext::EndElement() -{ -} - ScXMLDPSourceQueryContext::ScXMLDPSourceQueryContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTempDataPilotTable) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotTable(pTempDataPilotTable) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDatabaseRangeSourceQueryAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_SOURCE_QUERY_ATTR_DATABASE_NAME : + switch (aIter.getToken()) { - pDataPilotTable->SetDatabaseName(sValue); - } - break; - case XML_TOK_SOURCE_QUERY_ATTR_QUERY_NAME : - { - pDataPilotTable->SetSourceObject(sValue); + case XML_ELEMENT( TABLE, XML_DATABASE_NAME ): + pDataPilotTable->SetDatabaseName(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_QUERY_NAME ): + pDataPilotTable->SetSourceObject(aIter.toString()); + break; } - break; } } } @@ -723,62 +671,38 @@ ScXMLDPSourceQueryContext::~ScXMLDPSourceQueryContext() { } -SvXMLImportContext *ScXMLDPSourceQueryContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLDPSourceQueryContext::EndElement() -{ -} - ScXMLSourceServiceContext::ScXMLSourceServiceContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTempDataPilotTable) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotTable(pTempDataPilotTable) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotTableSourceServiceAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_SOURCE_SERVICE_ATTR_NAME : - { - pDataPilotTable->SetServiceName(sValue); - } - break; - case XML_TOK_SOURCE_SERVICE_ATTR_SOURCE_NAME : - { - pDataPilotTable->SetServiceSourceName(sValue); - } - break; - case XML_TOK_SOURCE_SERVICE_ATTR_OBJECT_NAME : - { - pDataPilotTable->SetServiceSourceObject(sValue); - } - break; - case XML_TOK_SOURCE_SERVICE_ATTR_USER_NAME : + switch (aIter.getToken()) { - pDataPilotTable->SetServiceUsername(sValue); - } - break; - case XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD : - { - pDataPilotTable->SetServicePassword(sValue); + case XML_ELEMENT( TABLE, XML_NAME ): + pDataPilotTable->SetServiceName(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_SOURCE_NAME ): + pDataPilotTable->SetServiceSourceName(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_OBJECT_NAME ): + pDataPilotTable->SetServiceSourceObject(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_USER_NAME ): + pDataPilotTable->SetServiceUsername(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_PASSWORD ): + pDataPilotTable->SetServicePassword(aIter.toString()); + break; } - break; } } } @@ -787,53 +711,41 @@ ScXMLSourceServiceContext::~ScXMLSourceServiceContext() { } -SvXMLImportContext *ScXMLSourceServiceContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLSourceServiceContext::EndElement() -{ -} - ScXMLDataPilotGrandTotalContext::ScXMLDataPilotGrandTotalContext( - ScXMLImport& rImport, sal_uInt16 nPrefix, const OUString& rLName, const Reference<XAttributeList>& xAttrList, + ScXMLImport& rImport, sal_Int32 /*nElement*/, const Reference<xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTableContext ) : - ScXMLImportContext( rImport, nPrefix, rLName ), + ScXMLImportContext( rImport ), mpTableContext(pTableContext), meOrientation(NONE), mbVisible(false) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotGrandTotalAttrTokenMap(); - for (sal_Int16 i = 0; i < nAttrCount; ++i) + if ( xAttrList.is() ) { - const OUString& rAttrName = xAttrList->getNameByIndex(i); - const OUString& rAttrValue = xAttrList->getValueByIndex(i); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - OUString aLocalName; - sal_uInt16 nLocalPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName(rAttrName, &aLocalName); - switch (rAttrTokenMap.Get(nLocalPrefix, aLocalName)) + for (auto &aIter : *pAttribList) { - case XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY: - mbVisible = IsXMLToken(rAttrValue, XML_TRUE); - break; - case XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_ORIENTATION: - if (IsXMLToken(rAttrValue, XML_BOTH)) - meOrientation = BOTH; - else if (IsXMLToken(rAttrValue, XML_ROW)) - meOrientation = ROW; - else if (IsXMLToken(rAttrValue, XML_COLUMN)) - meOrientation = COLUMN; - break; - case XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME: - case XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME_EXT: - maDisplayName = rAttrValue; - break; - default: + switch (aIter.getToken()) + { + case XML_ELEMENT( TABLE, XML_DISPLAY ): + mbVisible = IsXMLToken(aIter, XML_TRUE); break; + case XML_ELEMENT( TABLE, XML_ORIENTATION ): + if (IsXMLToken(aIter, XML_BOTH)) + meOrientation = BOTH; + else if (IsXMLToken(aIter, XML_ROW)) + meOrientation = ROW; + else if (IsXMLToken(aIter, XML_COLUMN)) + meOrientation = COLUMN; + break; + case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ): + case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ): + maDisplayName = aIter.toString(); + break; + default: + break; + } } } } @@ -842,13 +754,7 @@ ScXMLDataPilotGrandTotalContext::~ScXMLDataPilotGrandTotalContext() { } -SvXMLImportContext* ScXMLDataPilotGrandTotalContext::CreateChildContext( - sal_uInt16 nPrefix, const OUString& rLocalName, const Reference<XAttributeList>& /*xAttrList*/ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLocalName ); -} - -void ScXMLDataPilotGrandTotalContext::EndElement() + void SAL_CALL ScXMLDataPilotGrandTotalContext::endFastElement( sal_Int32 /*nElement*/ ) { XMLTokenEnum eOrient = XML_NONE; switch (meOrientation) @@ -869,36 +775,33 @@ void ScXMLDataPilotGrandTotalContext::EndElement() } ScXMLSourceCellRangeContext::ScXMLSourceCellRangeContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTempDataPilotTable) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotTable(pTempDataPilotTable) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotTableSourceCellRangeAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_SOURCE_CELL_RANGE_ATTR_CELL_RANGE_ADDRESS : + switch (aIter.getToken()) { - ScRange aSourceRangeAddress; - sal_Int32 nOffset(0); - if (ScRangeStringConverter::GetRangeFromString( aSourceRangeAddress, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset )) - pDataPilotTable->SetSourceCellRangeAddress(aSourceRangeAddress); + case XML_ELEMENT( TABLE, XML_CELL_RANGE_ADDRESS ): + { + ScRange aSourceRangeAddress; + sal_Int32 nOffset(0); + if (ScRangeStringConverter::GetRangeFromString( aSourceRangeAddress, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset )) + pDataPilotTable->SetSourceCellRangeAddress(aSourceRangeAddress); + } + break; + case XML_ELEMENT( TABLE, XML_NAME ): + pDataPilotTable->SetSourceRangeName(aIter.toString()); + break; } - break; - case XML_TOK_SOURCE_CELL_RANGE_ATTR_NAME: - pDataPilotTable->SetSourceRangeName(sValue); - break; } } } @@ -907,37 +810,29 @@ ScXMLSourceCellRangeContext::~ScXMLSourceCellRangeContext() { } -SvXMLImportContext *ScXMLSourceCellRangeContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference< - css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLSourceCellRangeContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotTableSourceCellRangeElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_SOURCE_CELL_RANGE_ELEM_FILTER : - pContext = new ScXMLDPFilterContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotTable); + case XML_ELEMENT( TABLE, XML_FILTER ): + pContext = new ScXMLDPFilterContext(GetScImport(), nElement, xAttrList, pDataPilotTable); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLSourceCellRangeContext::EndElement() -{ -} - ScXMLDataPilotFieldContext::ScXMLDataPilotFieldContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTempDataPilotTable) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotTable(pTempDataPilotTable), xDim(), fStart(0.0), @@ -958,61 +853,43 @@ ScXMLDataPilotFieldContext::ScXMLDataPilotFieldContext( ScXMLImport& rImport, bool bDataLayout = false; bool bIgnoreSelectedPage = false; OUString aDisplayName; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotFieldAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_DATA_PILOT_FIELD_ATTR_SOURCE_FIELD_NAME : - { - sName = sValue; - bHasName = true; - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME: - case XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME_EXT: - { - aDisplayName = sValue; - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_IS_DATA_LAYOUT_FIELD : - { - bDataLayout = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_FUNCTION : - { - nFunction = ScXMLConverter::GetFunctionFromString2( sValue ); - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_ORIENTATION : - { - nOrientation = ScXMLConverter::GetOrientationFromString( sValue ); - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_SELECTED_PAGE : - { - sSelectedPage = sValue; - bSelectedPage = true; - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_IGNORE_SELECTED_PAGE: + switch (aIter.getToken()) { - bIgnoreSelectedPage = true; - } - break; - case XML_TOK_DATA_PILOT_FIELD_ATTR_USED_HIERARCHY : - { - nUsedHierarchy = sValue.toInt32(); + case XML_ELEMENT( TABLE, XML_SOURCE_FIELD_NAME ): + sName = aIter.toString(); + bHasName = true; + break; + case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ): + case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ): + aDisplayName = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_IS_DATA_LAYOUT_FIELD ): + bDataLayout = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_FUNCTION ): + nFunction = ScXMLConverter::GetFunctionFromString2( aIter.toString() ); + break; + case XML_ELEMENT( TABLE, XML_ORIENTATION ): + nOrientation = ScXMLConverter::GetOrientationFromString( aIter.toString() ); + break; + case XML_ELEMENT( TABLE, XML_SELECTED_PAGE ): + sSelectedPage = aIter.toString(); + bSelectedPage = true; + break; + case XML_ELEMENT( LO_EXT, XML_IGNORE_SELECTED_PAGE ): + bIgnoreSelectedPage = true; + break; + case XML_ELEMENT( TABLE, XML_USED_HIERARCHY ): + nUsedHierarchy = aIter.toInt32(); + break; } - break; } } @@ -1032,28 +909,26 @@ ScXMLDataPilotFieldContext::~ScXMLDataPilotFieldContext() { } -SvXMLImportContext *ScXMLDataPilotFieldContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotFieldContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotFieldElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LEVEL : - pContext = new ScXMLDataPilotLevelContext(GetScImport(), nPrefix, rLName, xAttrList, this); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_LEVEL ): + pContext = new ScXMLDataPilotLevelContext(GetScImport(), nElement, xAttrList, this); break; - case XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_REFERENCE : - pContext = new ScXMLDataPilotFieldReferenceContext(GetScImport(), nPrefix, rLName, xAttrList, this); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_FIELD_REFERENCE ): + pContext = new ScXMLDataPilotFieldReferenceContext(GetScImport(), nElement, xAttrList, this); break; - case XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_GROUPS : - pContext = new ScXMLDataPilotGroupsContext(GetScImport(), nPrefix, rLName, xAttrList, this); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_GROUPS ): + pContext = new ScXMLDataPilotGroupsContext(GetScImport(), nElement, xAttrList, this); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } @@ -1085,7 +960,7 @@ void ScXMLDataPilotFieldContext::AddGroup(const ::std::vector<OUString>& rMember aGroups.push_back(aGroup); } -void ScXMLDataPilotFieldContext::EndElement() +void SAL_CALL ScXMLDataPilotFieldContext::endFastElement( sal_Int32 /*nElement*/ ) { if (xDim) { @@ -1143,62 +1018,64 @@ void ScXMLDataPilotFieldContext::EndElement() } } -ScXMLDataPilotFieldReferenceContext::ScXMLDataPilotFieldReferenceContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const uno::Reference<xml::sax::XAttributeList>& xAttrList, +ScXMLDataPilotFieldReferenceContext::ScXMLDataPilotFieldReferenceContext( ScXMLImport& rImport, sal_Int32 /*+*/, + const uno::Reference<xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ) + ScXMLImportContext( rImport ) { sheet::DataPilotFieldReference aReference; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if ( nPrefix == XML_NAMESPACE_TABLE ) + for (auto &aIter : *pAttribList) { - if (IsXMLToken(aLocalName, XML_TYPE)) + switch (aIter.getToken()) { - if (IsXMLToken(sValue, XML_NONE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::NONE; - else if (IsXMLToken(sValue, XML_MEMBER_DIFFERENCE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ITEM_DIFFERENCE; - else if (IsXMLToken(sValue, XML_MEMBER_PERCENTAGE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ITEM_PERCENTAGE; - else if (IsXMLToken(sValue, XML_MEMBER_PERCENTAGE_DIFFERENCE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ITEM_PERCENTAGE_DIFFERENCE; - else if (IsXMLToken(sValue, XML_RUNNING_TOTAL)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::RUNNING_TOTAL; - else if (IsXMLToken(sValue, XML_ROW_PERCENTAGE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ROW_PERCENTAGE; - else if (IsXMLToken(sValue, XML_COLUMN_PERCENTAGE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::COLUMN_PERCENTAGE; - else if (IsXMLToken(sValue, XML_TOTAL_PERCENTAGE)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::TOTAL_PERCENTAGE; - else if (IsXMLToken(sValue, XML_INDEX)) - aReference.ReferenceType = sheet::DataPilotFieldReferenceType::INDEX; - } - else if (IsXMLToken(aLocalName, XML_FIELD_NAME)) - { - aReference.ReferenceField = sValue; - } - else if (IsXMLToken(aLocalName, XML_MEMBER_TYPE)) - { - if (IsXMLToken(sValue, XML_NAMED)) - aReference.ReferenceItemType = sheet::DataPilotFieldReferenceItemType::NAMED; - else if (IsXMLToken(sValue, XML_PREVIOUS)) - aReference.ReferenceItemType = sheet::DataPilotFieldReferenceItemType::PREVIOUS; - else if (IsXMLToken(sValue, XML_NEXT)) - aReference.ReferenceItemType = sheet::DataPilotFieldReferenceItemType::NEXT; - } - else if (IsXMLToken(aLocalName, XML_MEMBER_NAME)) - { - aReference.ReferenceItemName = sValue; + case XML_ELEMENT( TABLE, XML_TYPE ): + { + if (IsXMLToken(aIter, XML_NONE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::NONE; + else if (IsXMLToken(aIter, XML_MEMBER_DIFFERENCE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ITEM_DIFFERENCE; + else if (IsXMLToken(aIter, XML_MEMBER_PERCENTAGE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ITEM_PERCENTAGE; + else if (IsXMLToken(aIter, XML_MEMBER_PERCENTAGE_DIFFERENCE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ITEM_PERCENTAGE_DIFFERENCE; + else if (IsXMLToken(aIter, XML_RUNNING_TOTAL)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::RUNNING_TOTAL; + else if (IsXMLToken(aIter, XML_ROW_PERCENTAGE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::ROW_PERCENTAGE; + else if (IsXMLToken(aIter, XML_COLUMN_PERCENTAGE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::COLUMN_PERCENTAGE; + else if (IsXMLToken(aIter, XML_TOTAL_PERCENTAGE)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::TOTAL_PERCENTAGE; + else if (IsXMLToken(aIter, XML_INDEX)) + aReference.ReferenceType = sheet::DataPilotFieldReferenceType::INDEX; + } + break; + case XML_ELEMENT( TABLE, XML_FIELD_NAME ): + { + aReference.ReferenceField = aIter.toString(); + } + break; + case XML_ELEMENT( TABLE, XML_MEMBER_TYPE ): + { + if (IsXMLToken(aIter, XML_NAMED)) + aReference.ReferenceItemType = sheet::DataPilotFieldReferenceItemType::NAMED; + else if (IsXMLToken(aIter, XML_PREVIOUS)) + aReference.ReferenceItemType = sheet::DataPilotFieldReferenceItemType::PREVIOUS; + else if (IsXMLToken(aIter, XML_NEXT)) + aReference.ReferenceItemType = sheet::DataPilotFieldReferenceItemType::NEXT; + } + break; + case XML_ELEMENT( TABLE, XML_MEMBER_NAME ): + { + aReference.ReferenceItemName = aIter.toString(); + } + break; } } } @@ -1210,35 +1087,28 @@ ScXMLDataPilotFieldReferenceContext::~ScXMLDataPilotFieldReferenceContext() } ScXMLDataPilotLevelContext::ScXMLDataPilotLevelContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pTempDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotField(pTempDataPilotField) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotLevelAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_DATA_PILOT_LEVEL_ATTR_SHOW_EMPTY : + switch (aIter.getToken()) { - pDataPilotField->SetShowEmpty(IsXMLToken(sValue, XML_TRUE)); - } - break; - case XML_TOK_DATA_PILOT_LEVEL_ATTR_REPEAT_ITEM_LABELS : - { - pDataPilotField->SetRepeatItemLabels(IsXMLToken(sValue, XML_TRUE)); + case XML_ELEMENT( TABLE, XML_SHOW_EMPTY ): + pDataPilotField->SetShowEmpty(IsXMLToken(aIter, XML_TRUE)); + break; + case XML_ELEMENT( CALC_EXT, XML_REPEAT_ITEM_LABELS ): + pDataPilotField->SetRepeatItemLabels(IsXMLToken(aIter, XML_TRUE)); + break; } - break; } } } @@ -1247,82 +1117,70 @@ ScXMLDataPilotLevelContext::~ScXMLDataPilotLevelContext() { } -SvXMLImportContext *ScXMLDataPilotLevelContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotLevelContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotLevelElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_SUBTOTALS : - pContext = new ScXMLDataPilotSubTotalsContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_SUBTOTALS ): + pContext = new ScXMLDataPilotSubTotalsContext(GetScImport(), nElement, xAttrList, pDataPilotField); break; - case XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_MEMBERS : - pContext = new ScXMLDataPilotMembersContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_MEMBERS ): + pContext = new ScXMLDataPilotMembersContext(GetScImport(), nElement, xAttrList, pDataPilotField); break; - case XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_DISPLAY_INFO : - pContext = new ScXMLDataPilotDisplayInfoContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_DISPLAY_INFO ): + pContext = new ScXMLDataPilotDisplayInfoContext(GetScImport(), nElement, xAttrList, pDataPilotField); break; - case XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_SORT_INFO : - pContext = new ScXMLDataPilotSortInfoContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_SORT_INFO ): + pContext = new ScXMLDataPilotSortInfoContext(GetScImport(), nElement, xAttrList, pDataPilotField); break; - case XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LAYOUT_INFO : - pContext = new ScXMLDataPilotLayoutInfoContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_LAYOUT_INFO ): + pContext = new ScXMLDataPilotLayoutInfoContext(GetScImport(), nElement, xAttrList, pDataPilotField); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLDataPilotLevelContext::EndElement() -{ -} - -ScXMLDataPilotDisplayInfoContext::ScXMLDataPilotDisplayInfoContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, +ScXMLDataPilotDisplayInfoContext::ScXMLDataPilotDisplayInfoContext( ScXMLImport& rImport, sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ) + ScXMLImportContext( rImport ) { sheet::DataPilotFieldAutoShowInfo aInfo; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if ( nPrefix == XML_NAMESPACE_TABLE ) + for (auto &aIter : *pAttribList) { - if (IsXMLToken(aLocalName, XML_ENABLED)) - { - if (IsXMLToken(sValue, XML_TRUE)) - aInfo.IsEnabled = true; - else - aInfo.IsEnabled = false; - } - else if (IsXMLToken(aLocalName, XML_DISPLAY_MEMBER_MODE)) - { - if (IsXMLToken(sValue, XML_FROM_TOP)) - aInfo.ShowItemsMode = sheet::DataPilotFieldShowItemsMode::FROM_TOP; - else if (IsXMLToken(sValue, XML_FROM_BOTTOM)) - aInfo.ShowItemsMode = sheet::DataPilotFieldShowItemsMode::FROM_BOTTOM; - } - else if (IsXMLToken(aLocalName, XML_MEMBER_COUNT)) + switch (aIter.getToken()) { - aInfo.ItemCount = sValue.toInt32(); - } - else if (IsXMLToken(aLocalName, XML_DATA_FIELD)) - { - aInfo.DataField = sValue; + case XML_ELEMENT( TABLE, XML_ENABLED ): + if (IsXMLToken(aIter, XML_TRUE)) + aInfo.IsEnabled = true; + else + aInfo.IsEnabled = false; + break; + case XML_ELEMENT( TABLE, XML_DISPLAY_MEMBER_MODE ): + if (IsXMLToken(aIter, XML_FROM_TOP)) + aInfo.ShowItemsMode = sheet::DataPilotFieldShowItemsMode::FROM_TOP; + else if (IsXMLToken(aIter, XML_FROM_BOTTOM)) + aInfo.ShowItemsMode = sheet::DataPilotFieldShowItemsMode::FROM_BOTTOM; + break; + case XML_ELEMENT( TABLE, XML_MEMBER_COUNT ): + aInfo.ItemCount = aIter.toInt32(); + break; + case XML_ELEMENT( TABLE, XML_DATA_FIELD ): + aInfo.DataField = aIter.toString(); + break; } } } @@ -1333,45 +1191,42 @@ ScXMLDataPilotDisplayInfoContext::~ScXMLDataPilotDisplayInfoContext() { } -ScXMLDataPilotSortInfoContext::ScXMLDataPilotSortInfoContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, +ScXMLDataPilotSortInfoContext::ScXMLDataPilotSortInfoContext( ScXMLImport& rImport, sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ) + ScXMLImportContext( rImport ) { sheet::DataPilotFieldSortInfo aInfo; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if ( nPrefix == XML_NAMESPACE_TABLE ) + for (auto &aIter : *pAttribList) { - if (IsXMLToken(aLocalName, XML_ORDER)) + switch (aIter.getToken()) { - if (IsXMLToken(sValue, XML_ASCENDING)) - aInfo.IsAscending = true; - else if (IsXMLToken(sValue, XML_DESCENDING)) - aInfo.IsAscending = false; - } - else if (IsXMLToken(aLocalName, XML_SORT_MODE)) - { - if (IsXMLToken(sValue, XML_NONE)) - aInfo.Mode = sheet::DataPilotFieldSortMode::NONE; - else if (IsXMLToken(sValue, XML_MANUAL)) - aInfo.Mode = sheet::DataPilotFieldSortMode::MANUAL; - else if (IsXMLToken(sValue, XML_NAME)) - aInfo.Mode = sheet::DataPilotFieldSortMode::NAME; - else if (IsXMLToken(sValue, XML_DATA)) - aInfo.Mode = sheet::DataPilotFieldSortMode::DATA; + case XML_ELEMENT( TABLE, XML_ORDER ): + if (IsXMLToken(aIter, XML_ASCENDING)) + aInfo.IsAscending = true; + else if (IsXMLToken(aIter, XML_DESCENDING)) + aInfo.IsAscending = false; + break; + case XML_ELEMENT( TABLE, XML_SORT_MODE ): + if (IsXMLToken(aIter, XML_NONE)) + aInfo.Mode = sheet::DataPilotFieldSortMode::NONE; + else if (IsXMLToken(aIter, XML_MANUAL)) + aInfo.Mode = sheet::DataPilotFieldSortMode::MANUAL; + else if (IsXMLToken(aIter, XML_NAME)) + aInfo.Mode = sheet::DataPilotFieldSortMode::NAME; + else if (IsXMLToken(aIter, XML_DATA)) + aInfo.Mode = sheet::DataPilotFieldSortMode::DATA; + break; + case XML_ELEMENT( TABLE, XML_DATA_FIELD ): + aInfo.Field = aIter.toString(); + break; } - else if (IsXMLToken(aLocalName, XML_DATA_FIELD)) - aInfo.Field = sValue; } } pDataPilotField->SetSortInfo(aInfo); @@ -1381,40 +1236,36 @@ ScXMLDataPilotSortInfoContext::~ScXMLDataPilotSortInfoContext() { } -ScXMLDataPilotLayoutInfoContext::ScXMLDataPilotLayoutInfoContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, +ScXMLDataPilotLayoutInfoContext::ScXMLDataPilotLayoutInfoContext( ScXMLImport& rImport, sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ) + ScXMLImportContext( rImport ) { sheet::DataPilotFieldLayoutInfo aInfo; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if ( nPrefix == XML_NAMESPACE_TABLE ) + for (auto &aIter : *pAttribList) { - if (IsXMLToken(aLocalName, XML_ADD_EMPTY_LINES)) - { - if (IsXMLToken(sValue, XML_TRUE)) - aInfo.AddEmptyLines = true; - else - aInfo.AddEmptyLines = false; - } - else if (IsXMLToken(aLocalName, XML_LAYOUT_MODE)) + switch (aIter.getToken()) { - if (IsXMLToken(sValue, XML_TABULAR_LAYOUT)) - aInfo.LayoutMode = sheet::DataPilotFieldLayoutMode::TABULAR_LAYOUT; - else if (IsXMLToken(sValue, XML_OUTLINE_SUBTOTALS_TOP)) - aInfo.LayoutMode = sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_TOP; - else if (IsXMLToken(sValue, XML_OUTLINE_SUBTOTALS_BOTTOM)) - aInfo.LayoutMode = sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_BOTTOM; + case XML_ELEMENT( TABLE, XML_ADD_EMPTY_LINES ): + if (IsXMLToken(aIter, XML_TRUE)) + aInfo.AddEmptyLines = true; + else + aInfo.AddEmptyLines = false; + break; + case XML_ELEMENT( TABLE, XML_LAYOUT_MODE ): + if (IsXMLToken(aIter, XML_TABULAR_LAYOUT)) + aInfo.LayoutMode = sheet::DataPilotFieldLayoutMode::TABULAR_LAYOUT; + else if (IsXMLToken(aIter, XML_OUTLINE_SUBTOTALS_TOP)) + aInfo.LayoutMode = sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_TOP; + else if (IsXMLToken(aIter, XML_OUTLINE_SUBTOTALS_BOTTOM)) + aInfo.LayoutMode = sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_BOTTOM; + break; } } } @@ -1425,11 +1276,10 @@ ScXMLDataPilotLayoutInfoContext::~ScXMLDataPilotLayoutInfoContext() } ScXMLDataPilotSubTotalsContext::ScXMLDataPilotSubTotalsContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& /* xAttrList */, ScXMLDataPilotFieldContext* pTempDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotField(pTempDataPilotField) { @@ -1440,27 +1290,25 @@ ScXMLDataPilotSubTotalsContext::~ScXMLDataPilotSubTotalsContext() { } -SvXMLImportContext *ScXMLDataPilotSubTotalsContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotSubTotalsContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotSubTotalsElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_DATA_PILOT_SUBTOTALS_ELEM_DATA_PILOT_SUBTOTAL : - pContext = new ScXMLDataPilotSubTotalContext(GetScImport(), nPrefix, rLName, xAttrList, this); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_SUBTOTAL ): + pContext = new ScXMLDataPilotSubTotalContext(GetScImport(), nElement, xAttrList, this); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLDataPilotSubTotalsContext::EndElement() +void SAL_CALL ScXMLDataPilotSubTotalsContext::endFastElement( sal_Int32 /*nElement*/ ) { pDataPilotField->SetSubTotals(maFunctions); if (!maDisplayName.isEmpty()) @@ -1478,34 +1326,29 @@ void ScXMLDataPilotSubTotalsContext::SetDisplayName(const OUString& rName) } ScXMLDataPilotSubTotalContext::ScXMLDataPilotSubTotalContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotSubTotalsContext* pTempDataPilotSubTotals) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotSubTotals(pTempDataPilotSubTotals) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotSubTotalAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_FUNCTION : + switch (aIter.getToken()) { - pDataPilotSubTotals->AddFunction( ScXMLConverter::GetFunctionFromString2( sValue ) ); + case XML_ELEMENT( TABLE, XML_FUNCTION ): + pDataPilotSubTotals->AddFunction( ScXMLConverter::GetFunctionFromString2( aIter.toString() ) ); + break; + case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ): + case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ): + pDataPilotSubTotals->SetDisplayName(aIter.toString()); + break; } - break; - case XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME: - case XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME_EXT: - pDataPilotSubTotals->SetDisplayName(sValue); - break; } } } @@ -1514,23 +1357,11 @@ ScXMLDataPilotSubTotalContext::~ScXMLDataPilotSubTotalContext() { } -SvXMLImportContext *ScXMLDataPilotSubTotalContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLDataPilotSubTotalContext::EndElement() -{ -} - ScXMLDataPilotMembersContext::ScXMLDataPilotMembersContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& /* xAttrList */, ScXMLDataPilotFieldContext* pTempDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotField(pTempDataPilotField) { // has no attributes @@ -1540,76 +1371,58 @@ ScXMLDataPilotMembersContext::~ScXMLDataPilotMembersContext() { } -SvXMLImportContext *ScXMLDataPilotMembersContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference< - css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotMembersContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetDataPilotMembersElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER : - pContext = new ScXMLDataPilotMemberContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + case XML_ELEMENT( TABLE, XML_DATA_PILOT_MEMBER ): + pContext = new ScXMLDataPilotMemberContext(GetScImport(), nElement, xAttrList, pDataPilotField); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLDataPilotMembersContext::EndElement() -{ -} - ScXMLDataPilotMemberContext::ScXMLDataPilotMemberContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pTempDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotField(pTempDataPilotField), bDisplay( true ), bDisplayDetails( true ), bHasName( false ) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotMemberAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_DATA_PILOT_MEMBER_ATTR_NAME : - { - sName = sValue; - bHasName = true; - } - break; - case XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME: - case XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME_EXT: - { - maDisplayName = sValue; - } - break; - case XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY : + switch (aIter.getToken()) { - bDisplay = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_DATA_PILOT_MEMBER_ATTR_SHOW_DETAILS : - { - bDisplayDetails = IsXMLToken(sValue, XML_TRUE); + case XML_ELEMENT( TABLE, XML_NAME ): + sName = aIter.toString(); + bHasName = true; + break; + case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ): + case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ): + maDisplayName = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_DISPLAY ): + bDisplay = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_SHOW_DETAILS ): + bDisplayDetails = IsXMLToken(aIter, XML_TRUE); + break; } - break; } } } @@ -1618,14 +1431,7 @@ ScXMLDataPilotMemberContext::~ScXMLDataPilotMemberContext() { } -SvXMLImportContext *ScXMLDataPilotMemberContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLDataPilotMemberContext::EndElement() +void SAL_CALL ScXMLDataPilotMemberContext::endFastElement( sal_Int32 /*nElement*/ ) { if (bHasName) // #i53407# don't check sName, empty name is allowed { @@ -1639,11 +1445,10 @@ void ScXMLDataPilotMemberContext::EndElement() } ScXMLDataPilotGroupsContext::ScXMLDataPilotGroupsContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pTempDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotField(pTempDataPilotField) { OUString sGroupSource; @@ -1655,80 +1460,91 @@ ScXMLDataPilotGroupsContext::ScXMLDataPilotGroupsContext( ScXMLImport& rImport, bool bAutoStart(true); bool bAutoEnd(true); - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue = xAttrList->getValueByIndex( i ); - - if (IsXMLToken(aLocalName, XML_SOURCE_FIELD_NAME)) - sGroupSource = sValue; - else if (IsXMLToken(aLocalName, XML_DATE_START)) - { - bDateValue = true; - if (IsXMLToken(sValue, XML_AUTO)) - bAutoStart = true; - else - { - GetScImport().GetMM100UnitConverter().convertDateTime(fStart, sValue); - bAutoStart = false; - } - } - else if (IsXMLToken(aLocalName, XML_DATE_END)) - { - bDateValue = true; - if (IsXMLToken(sValue, XML_AUTO)) - bAutoEnd = true; - else - { - GetScImport().GetMM100UnitConverter().convertDateTime(fEnd, sValue); - bAutoEnd = false; - } - } - else if (IsXMLToken(aLocalName, XML_START)) - { - if (IsXMLToken(sValue, XML_AUTO)) - bAutoStart = true; - else - { - ::sax::Converter::convertDouble(fStart, sValue); - bAutoStart = false; - } - } - else if (IsXMLToken(aLocalName, XML_END)) + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); + + for (auto &aIter : *pAttribList) { - if (IsXMLToken(sValue, XML_AUTO)) - bAutoEnd = true; - else + switch (aIter.getToken() & TOKEN_MASK) { - ::sax::Converter::convertDouble(fEnd, sValue); - bAutoEnd = false; + case XML_SOURCE_FIELD_NAME : + { + sGroupSource = aIter.toString(); + } + break; + case XML_DATE_START : + { + bDateValue = true; + if (IsXMLToken(aIter, XML_AUTO)) + bAutoStart = true; + else + { + GetScImport().GetMM100UnitConverter().convertDateTime(fStart, aIter.toString()); + bAutoStart = false; + } + } + break; + case XML_DATE_END : + { + bDateValue = true; + if (IsXMLToken(aIter, XML_AUTO)) + bAutoEnd = true; + else + { + GetScImport().GetMM100UnitConverter().convertDateTime(fEnd, aIter.toString()); + bAutoEnd = false; + } + } + break; + case XML_START : + { + if (IsXMLToken(aIter, XML_AUTO)) + bAutoStart = true; + else + { + ::sax::Converter::convertDouble(fStart, aIter.toString()); + bAutoStart = false; + } + } + break; + case XML_END : + { + if (IsXMLToken(aIter, XML_AUTO)) + bAutoEnd = true; + else + { + ::sax::Converter::convertDouble(fEnd, aIter.toString()); + bAutoEnd = false; + } + } + break; + case XML_STEP : + { + ::sax::Converter::convertDouble(fStep, aIter.toString()); + } + break; + case XML_GROUPED_BY : + { + if (IsXMLToken(aIter, XML_SECONDS)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::SECONDS; + else if (IsXMLToken(aIter, XML_MINUTES)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::MINUTES; + else if (IsXMLToken(aIter, XML_HOURS)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::HOURS; + else if (IsXMLToken(aIter, XML_DAYS)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::DAYS; + else if (IsXMLToken(aIter, XML_MONTHS)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::MONTHS; + else if (IsXMLToken(aIter, XML_QUARTERS)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::QUARTERS; + else if (IsXMLToken(aIter, XML_YEARS)) + nGroupPart = css::sheet::DataPilotFieldGroupBy::YEARS; + } + break; } } - else if (IsXMLToken(aLocalName, XML_STEP)) - { - ::sax::Converter::convertDouble(fStep, sValue); - } - else if (IsXMLToken(aLocalName, XML_GROUPED_BY)) - { - if (IsXMLToken(sValue, XML_SECONDS)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::SECONDS; - else if (IsXMLToken(sValue, XML_MINUTES)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::MINUTES; - else if (IsXMLToken(sValue, XML_HOURS)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::HOURS; - else if (IsXMLToken(sValue, XML_DAYS)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::DAYS; - else if (IsXMLToken(sValue, XML_MONTHS)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::MONTHS; - else if (IsXMLToken(sValue, XML_QUARTERS)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::QUARTERS; - else if (IsXMLToken(sValue, XML_YEARS)) - nGroupPart = css::sheet::DataPilotFieldGroupBy::YEARS; - } } pDataPilotField->SetGrouping(sGroupSource, fStart, fEnd, fStep, nGroupPart, bDateValue, bAutoStart, bAutoEnd); } @@ -1737,50 +1553,37 @@ ScXMLDataPilotGroupsContext::~ScXMLDataPilotGroupsContext() { } -SvXMLImportContext *ScXMLDataPilotGroupsContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotGroupsContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - if (nPrefix == XML_NAMESPACE_TABLE) + if (nElement == XML_ELEMENT( TABLE, XML_DATA_PILOT_GROUP )) { - if (IsXMLToken(rLName, XML_DATA_PILOT_GROUP)) - pContext = new ScXMLDataPilotGroupContext(GetScImport(), nPrefix, rLName, xAttrList, pDataPilotField); + pContext = new ScXMLDataPilotGroupContext(GetScImport(), nElement, xAttrList, pDataPilotField); } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLDataPilotGroupsContext::EndElement() -{ -} - ScXMLDataPilotGroupContext::ScXMLDataPilotGroupContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pTempDataPilotField) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotField(pTempDataPilotField) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue = xAttrList->getValueByIndex( i ); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if (nPrefix == XML_NAMESPACE_TABLE) - { - if (IsXMLToken(aLocalName, XML_NAME)) - sName = sValue; - } + auto &aIter( pAttribList->find( XML_ELEMENT( TABLE, XML_NAME ) ) ); + if (aIter != pAttribList->end()) + sName = aIter.toString(); } } @@ -1788,51 +1591,43 @@ ScXMLDataPilotGroupContext::~ScXMLDataPilotGroupContext() { } -SvXMLImportContext *ScXMLDataPilotGroupContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDataPilotGroupContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - if (nPrefix == XML_NAMESPACE_TABLE) + if (nElement == XML_ELEMENT( TABLE, XML_DATA_PILOT_MEMBER ) || + nElement == XML_ELEMENT( TABLE, XML_DATA_PILOT_GROUP_MEMBER )) { - if (IsXMLToken(rLName, XML_DATA_PILOT_MEMBER) || IsXMLToken(rLName, XML_DATA_PILOT_GROUP_MEMBER)) - pContext = new ScXMLDataPilotGroupMemberContext(GetScImport(), nPrefix, rLName, xAttrList, this); + pContext = new ScXMLDataPilotGroupMemberContext(GetScImport(), nElement, xAttrList, this); } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLDataPilotGroupContext::EndElement() +void SAL_CALL ScXMLDataPilotGroupContext::endFastElement( sal_Int32 /*nElement*/ ) { pDataPilotField->AddGroup(aMembers, sName); } ScXMLDataPilotGroupMemberContext::ScXMLDataPilotGroupMemberContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotGroupContext* pTempDataPilotGroup) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), pDataPilotGroup(pTempDataPilotGroup) { - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + if ( xAttrList.is() ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - OUString sValue = xAttrList->getValueByIndex( i ); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if (nPrefix == XML_NAMESPACE_TABLE) - { - if (IsXMLToken(aLocalName, XML_NAME)) - sName = sValue; - } + auto &aIter( pAttribList->find( XML_ELEMENT( TABLE, XML_NAME ) ) ); + if (aIter != pAttribList->end()) + sName = aIter.toString(); } } @@ -1840,14 +1635,7 @@ ScXMLDataPilotGroupMemberContext::~ScXMLDataPilotGroupMemberContext() { } -SvXMLImportContext *ScXMLDataPilotGroupMemberContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) -{ - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); -} - -void ScXMLDataPilotGroupMemberContext::EndElement() +void SAL_CALL ScXMLDataPilotGroupMemberContext::endFastElement( sal_Int32 /*nElement*/ ) { if (!sName.isEmpty()) pDataPilotGroup->AddMember(sName); diff --git a/sc/source/filter/xml/xmldpimp.hxx b/sc/source/filter/xml/xmldpimp.hxx index 5b48837fe8b5..5ab66f585a44 100644 --- a/sc/source/filter/xml/xmldpimp.hxx +++ b/sc/source/filter/xml/xmldpimp.hxx @@ -57,9 +57,8 @@ public: virtual ~ScXMLDataPilotTablesContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; class ScXMLDataPilotTableContext : public ScXMLImportContext @@ -114,17 +113,15 @@ class ScXMLDataPilotTableContext : public ScXMLImportContext public: - ScXMLDataPilotTableContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList); + ScXMLDataPilotTableContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList); virtual ~ScXMLDataPilotTableContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; void SetGrandTotal(::xmloff::token::XMLTokenEnum eOrientation, bool bVisible, const OUString& rDisplayName); void SetDatabaseName(const OUString& sValue) { sDatabaseName = sValue; } @@ -153,18 +150,11 @@ class ScXMLDPSourceSQLContext : public ScXMLImportContext public: - ScXMLDPSourceSQLContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLDPSourceSQLContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pDataPilotTable); virtual ~ScXMLDPSourceSQLContext() override; - - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; }; class ScXMLDPSourceTableContext : public ScXMLImportContext @@ -173,18 +163,11 @@ class ScXMLDPSourceTableContext : public ScXMLImportContext public: - ScXMLDPSourceTableContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLDPSourceTableContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pDataPilotTable); virtual ~ScXMLDPSourceTableContext() override; - - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; }; class ScXMLDPSourceQueryContext : public ScXMLImportContext @@ -193,18 +176,11 @@ class ScXMLDPSourceQueryContext : public ScXMLImportContext public: - ScXMLDPSourceQueryContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLDPSourceQueryContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pDataPilotTable); virtual ~ScXMLDPSourceQueryContext() override; - - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; }; class ScXMLSourceServiceContext : public ScXMLImportContext @@ -213,18 +189,11 @@ class ScXMLSourceServiceContext : public ScXMLImportContext public: - ScXMLSourceServiceContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLSourceServiceContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pDataPilotTable); virtual ~ScXMLSourceServiceContext() override; - - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; }; class ScXMLDataPilotGrandTotalContext : public ScXMLImportContext @@ -238,17 +207,13 @@ class ScXMLDataPilotGrandTotalContext : public ScXMLImportContext public: ScXMLDataPilotGrandTotalContext( - ScXMLImport& rImport, sal_uInt16 nPrefix, const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pTableContext ); virtual ~ScXMLDataPilotGrandTotalContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; class ScXMLSourceCellRangeContext : public ScXMLImportContext @@ -257,18 +222,14 @@ class ScXMLSourceCellRangeContext : public ScXMLImportContext public: - ScXMLSourceCellRangeContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLSourceCellRangeContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pDataPilotTable); virtual ~ScXMLSourceCellRangeContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; struct ScXMLDataPilotGroup @@ -303,18 +264,16 @@ class ScXMLDataPilotFieldContext : public ScXMLImportContext public: - ScXMLDataPilotFieldContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLDataPilotFieldContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotTableContext* pDataPilotTable); virtual ~ScXMLDataPilotFieldContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; void SetShowEmpty(const bool bValue) { if (xDim) xDim->SetShowEmpty(bValue); } void SetRepeatItemLabels(const bool bSet) { if (xDim) xDim->SetRepeatItemLabels(bSet); } @@ -345,9 +304,8 @@ class ScXMLDataPilotFieldReferenceContext : public ScXMLImportContext { public: - ScXMLDataPilotFieldReferenceContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLDataPilotFieldReferenceContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pDataPilotField); virtual ~ScXMLDataPilotFieldReferenceContext() override; @@ -359,27 +317,22 @@ class ScXMLDataPilotLevelContext : public ScXMLImportContext public: - ScXMLDataPilotLevelContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLDataPilotLevelContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, ScXMLDataPilotFieldContext* pDataPilotField); virtual ~ScXMLDataPilotLevelContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits