summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2020-11-17 20:23:04 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-11-18 07:25:07 +0100
commitf493abe7edd7dc44855bec4b3a17a2cc32a597fe (patch)
treee3fcfcea7881bb3e9aa7f59fdce505cf508237e9
parent3fc10def9e82cccf3e2bb2aacadafcb321ad0773 (diff)
fastparser in SchXMLCalculationSettingsContext
Change-Id: Ic1365da6453c8cf02c518b576997784c928d7f2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106023 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--xmloff/source/chart/SchXMLCalculationSettingsContext.cxx29
-rw-r--r--xmloff/source/chart/SchXMLCalculationSettingsContext.hxx10
-rw-r--r--xmloff/source/chart/contexts.cxx19
-rw-r--r--xmloff/source/chart/contexts.hxx7
4 files changed, 28 insertions, 37 deletions
diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
index 63896ea0a576..f013a53b5128 100644
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
@@ -36,32 +36,27 @@ using namespace ::com::sun::star;
using namespace ::xmloff::token;
SchXMLCalculationSettingsContext::SchXMLCalculationSettingsContext( SvXMLImport& rImport,
- sal_uInt16 p_nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
-: SvXMLImportContext ( rImport, p_nPrefix, rLocalName )
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
+: SvXMLImportContext ( rImport )
{
- const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap();
- const sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
+ for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) )
{
- const OUString sAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- const sal_uInt16 nPrefix = rMap.GetKeyByAttrName(sAttrName, &aLocalName );
- if ( nPrefix == XML_NAMESPACE_TABLE && IsXMLToken( aLocalName, XML_DATE_VALUE ) )
+ if ( aIter.getToken() == XML_ELEMENT(TABLE, XML_DATE_VALUE) )
{
util::DateTime aNullDate;
- const OUString sValue = xAttrList->getValueByIndex( i );
- ::sax::Converter::parseDateTime(aNullDate, sValue);
+ ::sax::Converter::parseDateTime(aNullDate, aIter.toString());
m_aNullDate <<= aNullDate;
}
+ else
+ XMLOFF_WARN_UNKNOWN("xmloff", aIter);
}
}
-SvXMLImportContextRef SchXMLCalculationSettingsContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
+
+css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLCalculationSettingsContext::createFastChildContext(
+ sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- return new SchXMLCalculationSettingsContext(GetImport(),nPrefix,rLocalName,xAttrList);
+ return new SchXMLCalculationSettingsContext(GetImport(),xAttrList);
}
void SchXMLCalculationSettingsContext::endFastElement(sal_Int32 )
diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
index a50f0d275314..559358c0afbe 100644
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
@@ -27,13 +27,11 @@ class SchXMLCalculationSettingsContext : public SvXMLImportContext
css::uno::Any m_aNullDate;
public:
SchXMLCalculationSettingsContext( SvXMLImport& rImport,
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList );
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList );
- virtual SvXMLImportContextRef 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 >& AttrList ) override;
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
};
diff --git a/xmloff/source/chart/contexts.cxx b/xmloff/source/chart/contexts.cxx
index af016b4bfde2..c6056915382a 100644
--- a/xmloff/source/chart/contexts.cxx
+++ b/xmloff/source/chart/contexts.cxx
@@ -159,25 +159,24 @@ SchXMLBodyContext::SchXMLBodyContext( SchXMLImportHelper& rImpHelper,
SchXMLBodyContext::~SchXMLBodyContext()
{}
-SvXMLImportContextRef SchXMLBodyContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLBodyContext::createFastChildContext(
+ sal_Int32 nElement,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- SvXMLImportContextRef xContext;
+ css::uno::Reference< css::xml::sax::XFastContextHandler > xContext;
// <chart:chart> element
- if( nPrefix == XML_NAMESPACE_CHART &&
- IsXMLToken( rLocalName, XML_CHART ) )
+ if( nElement == XML_ELEMENT(CHART, XML_CHART) )
{
xContext = mrImportHelper.CreateChartContext( GetImport(), GetImport().GetModel() );
}
- else if(nPrefix == XML_NAMESPACE_TABLE &&
- IsXMLToken( rLocalName, XML_CALCULATION_SETTINGS ))
+ else if(nElement == XML_ELEMENT(TABLE, XML_CALCULATION_SETTINGS ))
{
// i99104 handle null date correctly
- xContext = new SchXMLCalculationSettingsContext ( GetImport(), nPrefix, rLocalName, xAttrList);
+ xContext = new SchXMLCalculationSettingsContext ( GetImport(), xAttrList);
}
+ else
+ XMLOFF_WARN_UNKNOWN_ELEMENT("xmloff", nElement);
return xContext;
}
diff --git a/xmloff/source/chart/contexts.hxx b/xmloff/source/chart/contexts.hxx
index d8fe78be1a9d..81f5e6318239 100644
--- a/xmloff/source/chart/contexts.hxx
+++ b/xmloff/source/chart/contexts.hxx
@@ -83,10 +83,9 @@ public:
sal_Int32 nElement );
virtual ~SchXMLBodyContext() override;
- virtual SvXMLImportContextRef 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 >& AttrList ) override;
};
#endif // INCLUDED_XMLOFF_SOURCE_CHART_CONTEXTS_HXX