diff options
author | Arkadiy Illarionov <qarkai@gmail.com> | 2019-09-07 23:10:33 +0300 |
---|---|---|
committer | Arkadiy Illarionov <qarkai@gmail.com> | 2019-10-21 19:41:43 +0200 |
commit | 00e2f118d7f4f070ebddf16b2cf4e89cf9d551a7 (patch) | |
tree | 2f48bf4455360d0f08d8096317ea31012debffbc /i18npool/source/numberformatcode | |
parent | ad3e00237f48c52dbd2833f21f5e2f5acfdd4167 (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.cxx | 107 |
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); } |