Kaydet (Commit) 5b25fec2 authored tarafından Mohammed Abdul Azeem's avatar Mohammed Abdul Azeem Kaydeden (comit) Markus Mohrhard

Moving legacy contexts to FastContexts:

ScXMLAndContext
ScXMLOrContext
ScXMLConditionContext
ScXMLSetItemContext
ScXMLDPAndContext
ScXMLDPOrContext
ScXMLDPConditionContext
ScXMLSortByContext

Change-Id: I559ae11ade78a262f6890875d8972d0c2eb4480f
Reviewed-on: https://gerrit.libreoffice.org/40791Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst 28ada780
......@@ -62,9 +62,8 @@ public:
virtual ~ScXMLFilterContext() 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 SAL_CALL endFastElement( sal_Int32 nElement ) override;
......@@ -80,19 +79,17 @@ class ScXMLAndContext : public ScXMLImportContext
public:
ScXMLAndContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLAndContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScQueryParam& rParam,
ScXMLFilterContext* pTempFilterContext);
virtual ~ScXMLAndContext() 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;
};
class ScXMLOrContext : public ScXMLImportContext
......@@ -102,19 +99,17 @@ class ScXMLOrContext : public ScXMLImportContext
public:
ScXMLOrContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLOrContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScQueryParam& rParam,
ScXMLFilterContext* pTempFilterContext);
virtual ~ScXMLOrContext() 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;
};
class ScXMLConditionContext : public ScXMLImportContext
......@@ -131,19 +126,17 @@ class ScXMLConditionContext : public ScXMLImportContext
public:
ScXMLConditionContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLConditionContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScQueryParam& rParam,
ScXMLFilterContext* pTempFilterContext);
virtual ~ScXMLConditionContext() 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;
static void GetOperator(const OUString& aOpStr, ScQueryParam& rParam, ScQueryEntry& rEntry);
void AddSetItem(const ScQueryEntry::Item& rItem);
......@@ -152,19 +145,11 @@ public:
class ScXMLSetItemContext : public ScXMLImportContext
{
public:
ScXMLSetItemContext(ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLSetItemContext(ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScXMLConditionContext& rParent);
virtual ~ScXMLSetItemContext() override;
virtual SvXMLImportContext *CreateChildContext(
sal_uInt16 nPrefix,
const OUString& rLocalName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) override;
virtual void EndElement() override;
};
// Datapilot (Core)
......@@ -194,9 +179,8 @@ public:
virtual ~ScXMLDPFilterContext() 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 SAL_CALL endFastElement( sal_Int32 nElement ) override;
......@@ -238,18 +222,16 @@ class ScXMLDPAndContext : public ScXMLImportContext
ScXMLDPFilterContext* pFilterContext;
public:
ScXMLDPAndContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLDPAndContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScXMLDPFilterContext* pTempFilterContext);
virtual ~ScXMLDPAndContext() 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;
};
class ScXMLDPOrContext : public ScXMLImportContext
......@@ -257,18 +239,16 @@ class ScXMLDPOrContext : public ScXMLImportContext
ScXMLDPFilterContext* pFilterContext;
public:
ScXMLDPOrContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLDPOrContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScXMLDPFilterContext* pTempFilterContext);
virtual ~ScXMLDPOrContext() 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;
};
class ScXMLDPConditionContext : public ScXMLImportContext
......@@ -283,20 +263,15 @@ class ScXMLDPConditionContext : public ScXMLImportContext
public:
ScXMLDPConditionContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLDPConditionContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScXMLDPFilterContext* pTempFilterContext);
virtual ~ScXMLDPConditionContext() override;
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const OUString& rLocalName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override;
static void getOperatorXML(
const OUString& sTempOperator, ScQueryOp& aFilterOperator, utl::SearchParam::SearchType& rSearchType);
virtual void EndElement() override;
virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
};
#endif
......
......@@ -111,25 +111,22 @@ ScXMLSortContext::~ScXMLSortContext()
{
}
SvXMLImportContext *ScXMLSortContext::CreateChildContext( sal_uInt16 nPrefix,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList )
uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLSortContext::createFastChildContext(
sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext(nullptr);
const SvXMLTokenMap& rTokenMap(GetScImport().GetSortElemTokenMap());
switch( rTokenMap.Get( nPrefix, rLName ) )
switch (nElement)
{
case XML_TOK_SORT_SORT_BY :
case XML_ELEMENT( TABLE, XML_SORT_BY ):
{
pContext = new ScXMLSortByContext( GetScImport(), nPrefix,
rLName, xAttrList, this);
pContext = new ScXMLSortByContext( GetScImport(), nElement, xAttrList, this );
}
break;
}
if( !pContext )
pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName );
pContext = new SvXMLImportContext( GetImport() );
return pContext;
}
......@@ -205,42 +202,39 @@ void ScXMLSortContext::AddSortField(const OUString& sFieldNumber, const OUString
}
ScXMLSortByContext::ScXMLSortByContext( 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,
ScXMLSortContext* pTempSortContext) :
ScXMLImportContext( rImport, nPrfx, rLName ),
ScXMLImportContext( rImport ),
pSortContext(pTempSortContext),
sDataType(GetXMLToken(XML_AUTOMATIC)),
sOrder(GetXMLToken(XML_ASCENDING))
{
sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
const SvXMLTokenMap& rAttrTokenMap(GetScImport().GetSortSortByAttrTokenMap());
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_SORT_BY_ATTR_FIELD_NUMBER :
{
sFieldNumber = sValue;
}
break;
case XML_TOK_SORT_BY_ATTR_DATA_TYPE :
{
sDataType = sValue;
}
break;
case XML_TOK_SORT_BY_ATTR_ORDER :
switch (aIter.getToken())
{
sOrder = sValue;
case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
{
sFieldNumber = aIter.toString();
}
break;
case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
{
sDataType = aIter.toString();
}
break;
case XML_ELEMENT( TABLE, XML_ORDER ):
{
sOrder = aIter.toString();
}
break;
}
break;
}
}
}
......@@ -249,14 +243,7 @@ ScXMLSortByContext::~ScXMLSortByContext()
{
}
SvXMLImportContext *ScXMLSortByContext::CreateChildContext( sal_uInt16 nPrefix,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ )
{
return new SvXMLImportContext( GetImport(), nPrefix, rLName );
}
void ScXMLSortByContext::EndElement()
void SAL_CALL ScXMLSortByContext::endFastElement( sal_Int32 /*nElement*/ )
{
pSortContext->AddSortField(sFieldNumber, sDataType, sOrder);
}
......
......@@ -52,9 +52,8 @@ public:
virtual ~ScXMLSortContext() 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 SAL_CALL endFastElement( sal_Int32 nElement ) override;
......@@ -71,18 +70,13 @@ class ScXMLSortByContext : public ScXMLImportContext
public:
ScXMLSortByContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const OUString& rLName,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList,
ScXMLSortByContext( ScXMLImport& rImport, sal_Int32 nElement,
const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
ScXMLSortContext* pTempSortContext);
virtual ~ScXMLSortByContext() 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;
};
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment