summaryrefslogtreecommitdiff
path: root/i18npool/source/numberformatcode
diff options
context:
space:
mode:
authorArkadiy Illarionov <qarkai@gmail.com>2019-09-07 23:10:33 +0300
committerArkadiy Illarionov <qarkai@gmail.com>2019-10-21 19:41:43 +0200
commit00e2f118d7f4f070ebddf16b2cf4e89cf9d551a7 (patch)
tree2f48bf4455360d0f08d8096317ea31012debffbc /i18npool/source/numberformatcode
parentad3e00237f48c52dbd2833f21f5e2f5acfdd4167 (diff)
Simplify Sequence iterations in i18npool
Use range-based loops, STL and comphelper functions. Change-Id: Ibbc1c14e921585819872f26e8def2a60594e6a63 Reviewed-on: https://gerrit.libreoffice.org/78754 Tested-by: Jenkins Reviewed-by: Arkadiy Illarionov <qarkai@gmail.com>
Diffstat (limited to 'i18npool/source/numberformatcode')
-rw-r--r--i18npool/source/numberformatcode/numberformatcode.cxx107
1 files changed, 50 insertions, 57 deletions
diff --git a/i18npool/source/numberformatcode/numberformatcode.cxx b/i18npool/source/numberformatcode/numberformatcode.cxx
index 17e71719310b..c98a8b36c01e 100644
--- a/i18npool/source/numberformatcode/numberformatcode.cxx
+++ b/i18npool/source/numberformatcode/numberformatcode.cxx
@@ -21,6 +21,7 @@
#include <com/sun/star/i18n/KNumberFormatUsage.hpp>
#include <com/sun/star/i18n/KNumberFormatType.hpp>
#include <com/sun/star/i18n/LocaleData2.hpp>
+#include <comphelper/sequence.hxx>
#include <cppuhelper/supportsservice.hxx>
NumberFormatCodeMapper::NumberFormatCodeMapper(
@@ -45,19 +46,19 @@ NumberFormatCodeMapper::getDefault( sal_Int16 formatType, sal_Int16 formatUsage,
osl::MutexGuard g(maMutex);
const css::uno::Sequence< css::i18n::FormatElement > &aFormatSeq = getFormats( rLocale );
- for (sal_Int32 i = 0; i < aFormatSeq.getLength(); i++) {
- if (aFormatSeq[i].isDefault && aFormatSeq[i].formatType == elementType &&
- aFormatSeq[i].formatUsage == elementUsage) {
- css::i18n::NumberFormatCode anumberFormatCode(formatType,
- formatUsage,
- aFormatSeq[i].formatCode,
- aFormatSeq[i].formatName,
- aFormatSeq[i].formatKey,
- aFormatSeq[i].formatIndex,
- true);
- return anumberFormatCode;
- }
- }
+ auto pFormat = std::find_if(aFormatSeq.begin(), aFormatSeq.end(),
+ [&elementType, &elementUsage](const css::i18n::FormatElement& rFormat) {
+ return rFormat.isDefault
+ && rFormat.formatType == elementType
+ && rFormat.formatUsage == elementUsage; });
+ if (pFormat != aFormatSeq.end())
+ return css::i18n::NumberFormatCode(formatType,
+ formatUsage,
+ pFormat->formatCode,
+ pFormat->formatName,
+ pFormat->formatKey,
+ pFormat->formatIndex,
+ true);
css::i18n::NumberFormatCode defaultNumberFormatCode;
return defaultNumberFormatCode;
}
@@ -69,18 +70,16 @@ NumberFormatCodeMapper::getFormatCode( sal_Int16 formatIndex, const css::lang::L
osl::MutexGuard g(maMutex);
const css::uno::Sequence< css::i18n::FormatElement > &aFormatSeq = getFormats( rLocale );
- for (sal_Int32 i = 0; i < aFormatSeq.getLength(); i++) {
- if (aFormatSeq[i].formatIndex == formatIndex) {
- css::i18n::NumberFormatCode anumberFormatCode(mapElementTypeStringToShort(aFormatSeq[i].formatType),
- mapElementUsageStringToShort(aFormatSeq[i].formatUsage),
- aFormatSeq[i].formatCode,
- aFormatSeq[i].formatName,
- aFormatSeq[i].formatKey,
- aFormatSeq[i].formatIndex,
- aFormatSeq[i].isDefault);
- return anumberFormatCode;
- }
- }
+ auto pFormat = std::find_if(aFormatSeq.begin(), aFormatSeq.end(),
+ [formatIndex](const css::i18n::FormatElement& rFormat) { return rFormat.formatIndex == formatIndex; });
+ if (pFormat != aFormatSeq.end())
+ return css::i18n::NumberFormatCode(mapElementTypeStringToShort(pFormat->formatType),
+ mapElementUsageStringToShort(pFormat->formatUsage),
+ pFormat->formatCode,
+ pFormat->formatName,
+ pFormat->formatKey,
+ pFormat->formatIndex,
+ pFormat->isDefault);
css::i18n::NumberFormatCode defaultNumberFormatCode;
return defaultNumberFormatCode;
}
@@ -92,30 +91,22 @@ NumberFormatCodeMapper::getAllFormatCode( sal_Int16 formatUsage, const css::lang
osl::MutexGuard g(maMutex);
const css::uno::Sequence< css::i18n::FormatElement > &aFormatSeq = getFormats( rLocale );
- sal_Int32 i, count;
- count = 0;
- for (i = 0; i < aFormatSeq.getLength(); i++) {
- sal_Int16 elementUsage = mapElementUsageStringToShort(aFormatSeq[i].formatUsage);
- if ( elementUsage == formatUsage )
- count++;
- }
+ std::vector<css::i18n::NumberFormatCode> aVec;
+ aVec.reserve(aFormatSeq.getLength());
- css::uno::Sequence<css::i18n::NumberFormatCode> seq(count);
- sal_Int32 j = 0;
- for (i = 0; i < aFormatSeq.getLength(); i++) {
- sal_Int16 elementUsage = mapElementUsageStringToShort(aFormatSeq[i].formatUsage);
+ for (const auto& rFormat : aFormatSeq) {
+ sal_Int16 elementUsage = mapElementUsageStringToShort(rFormat.formatUsage);
if ( elementUsage == formatUsage ) {
- seq[j] = css::i18n::NumberFormatCode(mapElementTypeStringToShort(aFormatSeq[i].formatType),
- formatUsage,
- aFormatSeq[i].formatCode,
- aFormatSeq[i].formatName,
- aFormatSeq[i].formatKey,
- aFormatSeq[i].formatIndex,
- aFormatSeq[i].isDefault);
- j++;
+ aVec.emplace_back(mapElementTypeStringToShort(rFormat.formatType),
+ formatUsage,
+ rFormat.formatCode,
+ rFormat.formatName,
+ rFormat.formatKey,
+ rFormat.formatIndex,
+ rFormat.isDefault);
}
}
- return seq;
+ return comphelper::containerToSequence(aVec);
}
@@ -125,18 +116,20 @@ NumberFormatCodeMapper::getAllFormatCodes( const css::lang::Locale& rLocale )
osl::MutexGuard g(maMutex);
const css::uno::Sequence< css::i18n::FormatElement > &aFormatSeq = getFormats( rLocale );
- css::uno::Sequence<css::i18n::NumberFormatCode> seq(aFormatSeq.getLength());
- for (sal_Int32 i = 0; i < aFormatSeq.getLength(); i++)
- {
- seq[i] = css::i18n::NumberFormatCode(mapElementTypeStringToShort(aFormatSeq[i].formatType),
- mapElementUsageStringToShort(aFormatSeq[i].formatUsage),
- aFormatSeq[i].formatCode,
- aFormatSeq[i].formatName,
- aFormatSeq[i].formatKey,
- aFormatSeq[i].formatIndex,
- aFormatSeq[i].isDefault);
- }
- return seq;
+ std::vector<css::i18n::NumberFormatCode> aVec;
+ aVec.reserve(aFormatSeq.getLength());
+
+ std::transform(aFormatSeq.begin(), aFormatSeq.end(), std::back_inserter(aVec),
+ [](const css::i18n::FormatElement& rFormat) -> css::i18n::NumberFormatCode {
+ return { mapElementTypeStringToShort(rFormat.formatType),
+ mapElementUsageStringToShort(rFormat.formatUsage),
+ rFormat.formatCode,
+ rFormat.formatName,
+ rFormat.formatKey,
+ rFormat.formatIndex,
+ rFormat.isDefault };
+ });
+ return comphelper::containerToSequence(aVec);
}