[Libreoffice-commits] core.git: sc/source
Mohammed Abdul Azeem
azeemmysore at gmail.com
Mon Jul 31 02:49:58 UTC 2017
sc/source/filter/xml/xmlcondformat.cxx | 365 +++++++++++++++------------------
sc/source/filter/xml/xmlcondformat.hxx | 66 ++---
2 files changed, 194 insertions(+), 237 deletions(-)
New commits:
commit 6d327ffeb12134e28b975b1894b03870fcddf31d
Author: Mohammed Abdul Azeem <azeemmysore at gmail.com>
Date: Sun Jul 30 12:39:19 2017 +0530
Moving legacy contexts to FastContexts:
ScXMLConditionalFormatContext
ScXMLColorScaleFormatContext
ScXMLDataBarFormatContext
ScXMLIconSetFormatContext
ScXMLColorScaleFormatEntryContext
ScXMLFormattingEntryContext
ScXMLCondContext
ScXMLDateContext
Change-Id: If2980e87198b934b4f8e95a6278f4026c092896d
Reviewed-on: https://gerrit.libreoffice.org/40561
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx
index 921fe8d8e233..04411dc529e6 100644
--- a/sc/source/filter/xml/xmlcondformat.cxx
+++ b/sc/source/filter/xml/xmlcondformat.cxx
@@ -10,6 +10,7 @@
#include <memory>
#include "xmlcondformat.hxx"
#include <xmloff/nmspmap.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include "colorscale.hxx"
#include "conditio.hxx"
@@ -21,6 +22,8 @@
#include "XMLConverter.hxx"
#include "stylehelper.hxx"
+using namespace xmloff::token;
+
ScXMLConditionalFormatsContext::ScXMLConditionalFormatsContext( ScXMLImport& rImport, sal_Int32 /*nElement*/ ):
ScXMLImportContext( rImport )
{
@@ -28,17 +31,14 @@ ScXMLConditionalFormatsContext::ScXMLConditionalFormatsContext( ScXMLImport& rIm
GetScImport().GetDocument()->SetCondFormList(new ScConditionalFormatList(), GetScImport().GetTables().GetCurrentSheet());
}
-SvXMLImportContext* ScXMLConditionalFormatsContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLConditionalFormatsContext::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- const SvXMLTokenMap& rTokenMap = GetScImport().GetCondFormatsTokenMap();
- sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName);
SvXMLImportContext* pContext = nullptr;
- switch (nToken)
+ switch (nElement)
{
- case XML_TOK_CONDFORMATS_CONDFORMAT:
- pContext = new ScXMLConditionalFormatContext( GetScImport(), nPrefix, rLocalName, xAttrList );
+ case XML_ELEMENT( CALC_EXT, XML_CONDITIONAL_FORMAT ):
+ pContext = new ScXMLConditionalFormatContext( GetScImport(), nElement, xAttrList );
break;
}
@@ -56,29 +56,27 @@ void SAL_CALL ScXMLConditionalFormatsContext::endFastElement( sal_Int32 /*nEleme
SAL_WARN_IF(bDeleted, "sc", "conditional formats have been deleted because they contained empty range info");
}
-ScXMLConditionalFormatContext::ScXMLConditionalFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList):
- ScXMLImportContext( rImport, nPrfx, rLName )
+ScXMLConditionalFormatContext::ScXMLConditionalFormatContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList):
+ ScXMLImportContext( rImport )
{
OUString sRange;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetCondFormatAttrMap();
- 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_CONDFORMAT_TARGET_RANGE:
- sRange = sValue;
- break;
- default:
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_TARGET_RANGE_ADDRESS ):
+ sRange = aIter.toString();
break;
+ default:
+ break;
+ }
}
}
@@ -89,29 +87,26 @@ ScXMLConditionalFormatContext::ScXMLConditionalFormatContext( ScXMLImport& rImpo
mxFormat->SetRange(maRange);
}
-SvXMLImportContext* ScXMLConditionalFormatContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLConditionalFormatContext::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- const SvXMLTokenMap& rTokenMap = GetScImport().GetCondFormatTokenMap();
- sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName);
SvXMLImportContext* pContext = nullptr;
- switch (nToken)
+ switch (nElement)
{
- case XML_TOK_CONDFORMAT_CONDITION:
- pContext = new ScXMLCondContext( GetScImport(), nPrefix, rLocalName, xAttrList, mxFormat.get() );
+ case XML_ELEMENT( CALC_EXT, XML_CONDITION ):
+ pContext = new ScXMLCondContext( GetScImport(), nElement, xAttrList, mxFormat.get() );
break;
- case XML_TOK_CONDFORMAT_COLORSCALE:
- pContext = new ScXMLColorScaleFormatContext( GetScImport(), nPrefix, rLocalName, mxFormat.get() );
+ case XML_ELEMENT( CALC_EXT, XML_COLOR_SCALE ):
+ pContext = new ScXMLColorScaleFormatContext( GetScImport(), nElement, mxFormat.get() );
break;
- case XML_TOK_CONDFORMAT_DATABAR:
- pContext = new ScXMLDataBarFormatContext( GetScImport(), nPrefix, rLocalName, xAttrList, mxFormat.get() );
+ case XML_ELEMENT( CALC_EXT, XML_DATA_BAR ):
+ pContext = new ScXMLDataBarFormatContext( GetScImport(), nElement, xAttrList, mxFormat.get() );
break;
- case XML_TOK_CONDFORMAT_ICONSET:
- pContext = new ScXMLIconSetFormatContext( GetScImport(), nPrefix, rLocalName, xAttrList, mxFormat.get() );
+ case XML_ELEMENT( CALC_EXT, XML_ICON_SET ):
+ pContext = new ScXMLIconSetFormatContext( GetScImport(), nElement, xAttrList, mxFormat.get() );
break;
- case XML_TOK_CONDFORMAT_DATE:
- pContext = new ScXMLDateContext( GetScImport(), nPrefix, rLocalName, xAttrList, mxFormat.get() );
+ case XML_ELEMENT( CALC_EXT, XML_DATE_IS ):
+ pContext = new ScXMLDateContext( GetScImport(), nElement, xAttrList, mxFormat.get() );
break;
default:
break;
@@ -120,7 +115,7 @@ SvXMLImportContext* ScXMLConditionalFormatContext::CreateChildContext( sal_uInt1
return pContext;
}
-void ScXMLConditionalFormatContext::EndElement()
+void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElement*/ )
{
ScDocument* pDoc = GetScImport().GetDocument();
@@ -136,26 +131,23 @@ ScXMLConditionalFormatContext::~ScXMLConditionalFormatContext()
{
}
-ScXMLColorScaleFormatContext::ScXMLColorScaleFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName, ScConditionalFormat* pFormat):
- ScXMLImportContext( rImport, nPrfx, rLName ),
+ScXMLColorScaleFormatContext::ScXMLColorScaleFormatContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ ScConditionalFormat* pFormat):
+ ScXMLImportContext( rImport ),
pColorScaleFormat(nullptr)
{
pColorScaleFormat = new ScColorScaleFormat(GetScImport().GetDocument());
pFormat->AddEntry(pColorScaleFormat);
}
-SvXMLImportContext* ScXMLColorScaleFormatContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLColorScaleFormatContext::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- const SvXMLTokenMap& rTokenMap = GetScImport().GetColorScaleTokenMap();
- sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName);
SvXMLImportContext* pContext = nullptr;
- switch (nToken)
+ switch (nElement)
{
- case XML_TOK_COLORSCALE_COLORSCALEENTRY:
- pContext = new ScXMLColorScaleFormatEntryContext( GetScImport(), nPrefix, rLocalName, xAttrList, pColorScaleFormat );
+ case XML_ELEMENT( CALC_EXT, XML_COLOR_SCALE_ENTRY ):
+ pContext = new ScXMLColorScaleFormatEntryContext( GetScImport(), nElement, xAttrList, pColorScaleFormat );
break;
default:
break;
@@ -164,10 +156,10 @@ SvXMLImportContext* ScXMLColorScaleFormatContext::CreateChildContext( sal_uInt16
return pContext;
}
-ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList,
+ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat):
- ScXMLImportContext( rImport, nPrfx, rLName ),
+ ScXMLImportContext( rImport ),
mpDataBarFormat(nullptr),
mpFormatData(nullptr),
mnIndex(0)
@@ -181,44 +173,42 @@ ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_
OUString sMinLength;
OUString sMaxLength;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataBarAttrMap();
- 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_DATABAR_POSITIVE_COLOR:
- sPositiveColor = sValue;
- break;
- case XML_TOK_DATABAR_GRADIENT:
- sGradient = sValue;
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_POSITIVE_COLOR ):
+ sPositiveColor = aIter.toString();
break;
- case XML_TOK_DATABAR_NEGATIVE_COLOR:
- sNegativeColor = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_GRADIENT ):
+ sGradient = aIter.toString();
break;
- case XML_TOK_DATABAR_AXISPOSITION:
- sAxisPosition = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_NEGATIVE_COLOR ):
+ sNegativeColor = aIter.toString();
break;
- case XML_TOK_DATABAR_SHOWVALUE:
- sShowValue = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_AXIS_POSITION ):
+ sAxisPosition = aIter.toString();
break;
- case XML_TOK_DATABAR_AXISCOLOR:
- sAxisColor = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_SHOW_VALUE ):
+ sShowValue = aIter.toString();
break;
- case XML_TOK_DATABAR_MINLENGTH:
- sMinLength = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_AXIS_COLOR ):
+ sAxisColor = aIter.toString();
break;
- case XML_TOK_DATABAR_MAXLENGTH:
- sMaxLength = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_MIN_LENGTH ):
+ sMinLength = aIter.toString();
break;
- default:
+ case XML_ELEMENT( CALC_EXT, XML_MAX_LENGTH ):
+ sMaxLength = aIter.toString();
break;
+ default:
+ break;
+ }
}
}
@@ -288,20 +278,17 @@ ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_
pFormat->AddEntry(mpDataBarFormat);
}
-SvXMLImportContext* ScXMLDataBarFormatContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLDataBarFormatContext::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- const SvXMLTokenMap& rTokenMap = GetScImport().GetFormattingTokenMap();
- sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName);
SvXMLImportContext* pContext = nullptr;
- switch (nToken)
+ switch (nElement)
{
- case XML_TOK_FORMATTING_ENTRY:
- case XML_TOK_DATABAR_DATABARENTRY:
+ case XML_ELEMENT( CALC_EXT, XML_FORMATTING_ENTRY ):
+ case XML_ELEMENT( CALC_EXT, XML_DATA_BAR_ENTRY ):
{
ScColorScaleEntry* pEntry(nullptr);
- pContext = new ScXMLFormattingEntryContext( GetScImport(), nPrefix, rLocalName, xAttrList, pEntry );
+ pContext = new ScXMLFormattingEntryContext( GetScImport(), nElement, xAttrList, pEntry );
if(mnIndex == 0)
{
mpFormatData->mpLowerLimit.reset(pEntry);
@@ -325,33 +312,30 @@ SvXMLImportContext* ScXMLDataBarFormatContext::CreateChildContext( sal_uInt16 nP
return pContext;
}
-ScXMLIconSetFormatContext::ScXMLIconSetFormatContext(ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ScXMLIconSetFormatContext::ScXMLIconSetFormatContext(ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat):
- ScXMLImportContext( rImport, nPrfx, rLName )
+ ScXMLImportContext( rImport )
{
OUString aIconSetType, sShowValue;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetIconSetAttrMap();
- 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_ICONSET_TYPE:
- aIconSetType = sValue;
- break;
- case XML_TOK_ICONSET_SHOWVALUE:
- sShowValue = sValue;
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_ICON_SET_TYPE ):
+ aIconSetType = aIter.toString();
break;
- default:
+ case XML_ELEMENT( CALC_EXT, XML_SHOW_VALUE ):
+ sShowValue = aIter.toString();
break;
+ default:
+ break;
+ }
}
}
@@ -384,19 +368,16 @@ ScXMLIconSetFormatContext::ScXMLIconSetFormatContext(ScXMLImport& rImport, sal_u
mpFormatData = pIconSetFormatData;
}
-SvXMLImportContext* ScXMLIconSetFormatContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLIconSetFormatContext::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- const SvXMLTokenMap& rTokenMap = GetScImport().GetFormattingTokenMap();
- sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName);
SvXMLImportContext* pContext = nullptr;
- switch (nToken)
+ switch (nElement)
{
- case XML_TOK_FORMATTING_ENTRY:
+ case XML_ELEMENT( CALC_EXT, XML_FORMATTING_ENTRY ):
{
ScColorScaleEntry* pEntry(nullptr);
- pContext = new ScXMLFormattingEntryContext( GetScImport(), nPrefix, rLocalName, xAttrList, pEntry );
+ pContext = new ScXMLFormattingEntryContext( GetScImport(), nElement, xAttrList, pEntry );
mpFormatData->m_Entries.push_back(std::unique_ptr<ScColorScaleEntry>(pEntry));
}
break;
@@ -569,39 +550,36 @@ void GetConditionData(const OUString& rValue, ScConditionMode& eMode, OUString&
}
-ScXMLCondContext::ScXMLCondContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList,
+ScXMLCondContext::ScXMLCondContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat ):
- ScXMLImportContext( rImport, nPrfx, rLName )
+ ScXMLImportContext( rImport )
{
OUString sExpression;
OUString sStyle;
OUString sAddress;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetConditionAttrMap();
- 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_CONDITION_VALUE:
- sExpression = sValue;
- break;
- case XML_TOK_CONDITION_APPLY_STYLE_NAME:
- sStyle = ScStyleNameConversion::ProgrammaticToDisplayName(sValue, SfxStyleFamily::Para );
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_VALUE ):
+ sExpression = aIter.toString();
break;
- case XML_TOK_CONDITION_BASE_CELL_ADDRESS:
- sAddress = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_APPLY_STYLE_NAME ):
+ sStyle = ScStyleNameConversion::ProgrammaticToDisplayName(aIter.toString(), SfxStyleFamily::Para );
break;
- default:
+ case XML_ELEMENT( CALC_EXT, XML_BASE_CELL_ADDRESS ):
+ sAddress = aIter.toString();
break;
+ default:
+ break;
+ }
}
}
@@ -644,11 +622,10 @@ void setColorEntryType(const OUString& rType, ScColorScaleEntry* pEntry, const O
}
-ScXMLColorScaleFormatEntryContext::ScXMLColorScaleFormatEntryContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList,
+ScXMLColorScaleFormatEntryContext::ScXMLColorScaleFormatEntryContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList,
ScColorScaleFormat* pFormat):
- ScXMLImportContext( rImport, nPrfx, rLName ),
+ ScXMLImportContext( rImport ),
mpFormatEntry( nullptr )
{
double nVal = 0;
@@ -658,29 +635,27 @@ ScXMLColorScaleFormatEntryContext::ScXMLColorScaleFormatEntryContext( ScXMLImpor
OUString sVal;
OUString sColor;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetColorScaleEntryAttrMap();
- 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_COLORSCALEENTRY_TYPE:
- sType = sValue;
- break;
- case XML_TOK_COLORSCALEENTRY_VALUE:
- sVal = sValue;
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_TYPE ):
+ sType = aIter.toString();
break;
- case XML_TOK_COLORSCALEENTRY_COLOR:
- sColor = sValue;
+ case XML_ELEMENT( CALC_EXT, XML_VALUE ):
+ sVal = aIter.toString();
break;
- default:
+ case XML_ELEMENT( CALC_EXT, XML_COLOR ):
+ sColor = aIter.toString();
break;
+ default:
+ break;
+ }
}
}
@@ -696,35 +671,32 @@ ScXMLColorScaleFormatEntryContext::ScXMLColorScaleFormatEntryContext( ScXMLImpor
pFormat->AddEntry(mpFormatEntry);
}
-ScXMLFormattingEntryContext::ScXMLFormattingEntryContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList,
+ScXMLFormattingEntryContext::ScXMLFormattingEntryContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList,
ScColorScaleEntry*& pColorScaleEntry):
- ScXMLImportContext( rImport, nPrfx, rLName )
+ ScXMLImportContext( rImport )
{
OUString sVal;
OUString sType;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataBarEntryAttrMap();
- 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_DATABARENTRY_TYPE:
- sType = sValue;
- break;
- case XML_TOK_DATABARENTRY_VALUE:
- sVal = sValue;
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_TYPE ):
+ sType = aIter.toString();
break;
- default:
+ case XML_ELEMENT( CALC_EXT, XML_VALUE ):
+ sVal = aIter.toString();
break;
+ default:
+ break;
+ }
}
}
@@ -773,33 +745,30 @@ condformat::ScCondFormatDateType getDateFromString(const OUString& rString)
}
-ScXMLDateContext::ScXMLDateContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList,
+ScXMLDateContext::ScXMLDateContext( ScXMLImport& rImport, sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat ):
- ScXMLImportContext( rImport, nPrfx, rLName )
+ ScXMLImportContext( rImport )
{
OUString sDateType, sStyle;
- sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
- const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetCondDateAttrMap();
- 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_COND_DATE_VALUE:
- sDateType = sValue;
- break;
- case XML_TOK_COND_DATE_STYLE:
- sStyle = ScStyleNameConversion::ProgrammaticToDisplayName(sValue, SfxStyleFamily::Para );
+ switch (aIter.getToken())
+ {
+ case XML_ELEMENT( CALC_EXT, XML_DATE ):
+ sDateType = aIter.toString();
break;
- default:
+ case XML_ELEMENT( CALC_EXT, XML_STYLE ):
+ sStyle = ScStyleNameConversion::ProgrammaticToDisplayName(aIter.toString(), SfxStyleFamily::Para );
break;
+ default:
+ break;
+ }
}
}
diff --git a/sc/source/filter/xml/xmlcondformat.hxx b/sc/source/filter/xml/xmlcondformat.hxx
index d2639da97364..81bf6133adb0 100644
--- a/sc/source/filter/xml/xmlcondformat.hxx
+++ b/sc/source/filter/xml/xmlcondformat.hxx
@@ -28,9 +28,8 @@ class ScXMLConditionalFormatsContext : public ScXMLImportContext
public:
ScXMLConditionalFormatsContext( ScXMLImport& rImport, sal_Int32 nElement );
- 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 SAL_CALL endFastElement( sal_Int32 nElement ) override;
};
@@ -38,17 +37,15 @@ public:
class ScXMLConditionalFormatContext : public ScXMLImportContext
{
public:
- ScXMLConditionalFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList);
+ ScXMLConditionalFormatContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList);
virtual ~ScXMLConditionalFormatContext() 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;
private:
std::unique_ptr<ScConditionalFormat> mxFormat;
@@ -58,12 +55,11 @@ private:
class ScXMLColorScaleFormatContext : public ScXMLImportContext
{
public:
- ScXMLColorScaleFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName, ScConditionalFormat* pFormat);
+ ScXMLColorScaleFormatContext( ScXMLImport& rImport, sal_Int32 nElement,
+ ScConditionalFormat* pFormat);
- 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;
private:
ScColorScaleFormat* pColorScaleFormat;
@@ -72,14 +68,12 @@ private:
class ScXMLDataBarFormatContext : public ScXMLImportContext
{
public:
- ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat);
- 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;
private:
ScDataBarFormat* mpDataBarFormat;
@@ -93,22 +87,19 @@ class ScXMLIconSetFormatContext : public ScXMLImportContext
ScIconSetFormatData* mpFormatData;
public:
- ScXMLIconSetFormatContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ ScXMLIconSetFormatContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat);
- 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 ScXMLColorScaleFormatEntryContext : public ScXMLImportContext
{
public:
- ScXMLColorScaleFormatEntryContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ ScXMLColorScaleFormatEntryContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScColorScaleFormat* pFormat);
private:
@@ -118,27 +109,24 @@ private:
class ScXMLFormattingEntryContext : public ScXMLImportContext
{
public:
- ScXMLFormattingEntryContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ ScXMLFormattingEntryContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScColorScaleEntry*& pData);
};
class ScXMLCondContext : public ScXMLImportContext
{
public:
- ScXMLCondContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ ScXMLCondContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat);
};
class ScXMLDateContext : public ScXMLImportContext
{
public:
- ScXMLDateContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
+ ScXMLDateContext( ScXMLImport& rImport, sal_Int32 nElement,
+ const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScConditionalFormat* pFormat);
};
More information about the Libreoffice-commits
mailing list