23#include <com/sun/star/drawing/framework/XConfiguration.hpp>
33 const Reference<XConfiguration>& rxConfiguration1,
34 const Reference<XConfiguration>& rxConfiguration2)
35 : mxConfiguration1(rxConfiguration1),
36 mxConfiguration2(rxConfiguration2)
46 mxConfiguration1->getResources(
nullptr, OUString(), AnchorBindingMode_DIRECT),
47 mxConfiguration2->getResources(
nullptr, OUString(), AnchorBindingMode_DIRECT));
53 const css::uno::Sequence<Reference<XResourceId> >& rS1,
54 const css::uno::Sequence<Reference<XResourceId> >& rS2)
69 SAL_INFO(
"sd.fwk", __func__ <<
": copying resource ids to C1-C2");
71 SAL_INFO(
"sd.fwk", __func__ <<
": copying resource ids to C2-C1");
75 for (
const auto& rxResource : aC1andC2)
78 mxConfiguration1->getResources(rxResource, OUString(), AnchorBindingMode_DIRECT),
79 mxConfiguration2->getResources(rxResource, OUString(), AnchorBindingMode_DIRECT));
84 const css::uno::Sequence<Reference<XResourceId> >& rS1,
85 const css::uno::Sequence<Reference<XResourceId> >& rS2,
92 for (
const Reference<XResourceId>& rA1 : rS1)
94 bool bFound = std::any_of(rS2.begin(), rS2.end(),
95 [&rA1](
const Reference<XResourceId>& rA2) {
96 return rA1->getResourceURL() == rA2->getResourceURL(); });
99 rS1andS2.push_back(rA1);
101 rS1minusS2.push_back(rA1);
107 for (
const Reference<XResourceId>& rA2 : rS2)
109 bool bFound = std::any_of(rS1.begin(), rS1.end(),
110 [&rA2](
const Reference<XResourceId>& rA1) {
111 return rA2->getResourceURL() == rA1->getResourceURL(); });
114 rS2minusS1.push_back(rA2);
120 const Reference<XConfiguration>& rxConfiguration,
124 for (
const auto& rxResource : rSource)
126 const Sequence<Reference<XResourceId> > aBoundResources (
127 rxConfiguration->getResources(
130 AnchorBindingMode_INDIRECT));
131 const sal_Int32 nL (aBoundResources.getLength());
136 SAL_INFO(
"sd.fwk", __func__ <<
": copying " <<
139 for (
const Reference<XResourceId>& rBoundResource : aBoundResources)
141 rTarget.push_back(rBoundResource);
142 SAL_INFO(
"sd.fwk", __func__ <<
": copying " <<
148#if DEBUG_SD_CONFIGURATION_TRACE
150void ConfigurationClassifier::TraceResourceIdVector (
151 const char* pMessage,
152 const ResourceIdVector& rResources)
155 SAL_INFO(
"sd.fwk", __func__ <<
": " << pMessage);
156 for (
const auto& rxResource : rResources)
159 SAL_INFO(
"sd.fwk", __func__ <<
": " << sResource);
css::uno::Reference< css::drawing::framework::XConfiguration > mxConfiguration1
ConfigurationClassifier(const css::uno::Reference< css::drawing::framework::XConfiguration > &rxConfiguration1, const css::uno::Reference< css::drawing::framework::XConfiguration > &rxConfiguration2)
Create a new ConfigurationClassifier object that will compare the two given configurations.
static void ClassifyResources(const css::uno::Sequence< css::uno::Reference< css::drawing::framework::XResourceId > > &rS1, const css::uno::Sequence< css::uno::Reference< css::drawing::framework::XResourceId > > &rS2, ResourceIdVector &rS1minusS2, ResourceIdVector &rS2minusS1, ResourceIdVector &rS1andS2)
Compare the given sequences of resource ids and put their elements in one of three vectors depending ...
ResourceIdVector maC1minusC2
After the call to Classify() this vector holds all elements from mxConfiguration1 that are not in mxC...
bool Partition()
Calculate three lists of resource ids.
void PartitionResources(const css::uno::Sequence< css::uno::Reference< css::drawing::framework::XResourceId > > &rS1, const css::uno::Sequence< css::uno::Reference< css::drawing::framework::XResourceId > > &rS2)
Put all the elements in the two given sequences of resource ids and copy them into one of the resourc...
::std::vector< css::uno::Reference< css::drawing::framework::XResourceId > > ResourceIdVector
static void CopyResources(const ResourceIdVector &rSource, const css::uno::Reference< css::drawing::framework::XConfiguration > &rxConfiguration, ResourceIdVector &rTarget)
Copy the resources given in rSource to the list of resources specified by rTarget.
ResourceIdVector maC2minusC1
After the call to Classify() this vector holds all elements from mxConfiguration2 that are not in mxC...
css::uno::Reference< css::drawing::framework::XConfiguration > mxConfiguration2
static OUString ResourceIdToString(const css::uno::Reference< css::drawing::framework::XResourceId > &rxResourceId)
Return a string representation of the given XResourceId object.
#define SAL_INFO(area, stream)