Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: source/i18n/quantityformatter.h

Issue 1621943002: ICU 56 step 4: Apply post-56 fixes for measure/date format (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@56goog
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/i18n/plurrule_impl.h ('k') | source/i18n/quantityformatter.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/i18n/quantityformatter.h
diff --git a/source/i18n/quantityformatter.h b/source/i18n/quantityformatter.h
index 4e19085964e9a44a519e404f3eb00addc3b94db3..6052d33ed9bb562c513cf1b386d9a6ce08ffd777 100644
--- a/source/i18n/quantityformatter.h
+++ b/source/i18n/quantityformatter.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 2014, International Business Machines
+* Copyright (C) 2014-2015, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* quantityformatter.h
@@ -14,6 +14,8 @@
#if !UCONFIG_NO_FORMATTING
+#include "standardplural.h"
+
U_NAMESPACE_BEGIN
class SimplePatternFormatter;
@@ -64,17 +66,14 @@ public:
void reset();
/**
- * Adds a plural variant.
- *
- * @param variant "zero", "one", "two", "few", "many", "other"
- * @param rawPattern the pattern for the variant e.g "{0} meters"
- * @param status any error returned here.
- * @return TRUE on success; FALSE if status was set to a non zero error.
- */
- UBool add(
- const char *variant,
- const UnicodeString &rawPattern,
- UErrorCode &status);
+ * Adds a plural variant if there is none yet for the plural form.
+ *
+ * @param variant "zero", "one", "two", "few", "many", "other"
+ * @param rawPattern the pattern for the variant e.g "{0} meters"
+ * @param status any error returned here.
+ * @return TRUE on success; FALSE if status was set to a non zero error.
+ */
+ UBool addIfAbsent(const char *variant, const UnicodeString &rawPattern, UErrorCode &status);
/**
* returns TRUE if this object has at least the "other" variant.
@@ -89,27 +88,48 @@ public:
const SimplePatternFormatter *getByVariant(const char *variant) const;
/**
- * Formats a quantity with this object appending the result to appendTo.
+ * Formats a number with this object appending the result to appendTo.
* At least the "other" variant must be added to this object for this
* method to work.
*
- * @param quantity the single quantity.
- * @param fmt formats the quantity
+ * @param number the single number.
+ * @param fmt formats the number
* @param rules computes the plural variant to use.
* @param appendTo result appended here.
* @param status any error returned here.
* @return appendTo
*/
UnicodeString &format(
- const Formattable &quantity,
+ const Formattable &number,
const NumberFormat &fmt,
const PluralRules &rules,
UnicodeString &appendTo,
FieldPosition &pos,
UErrorCode &status) const;
+ /**
+ * Selects the standard plural form for the number/formatter/rules.
+ */
+ static StandardPlural::Form selectPlural(
+ const Formattable &number,
+ const NumberFormat &fmt,
+ const PluralRules &rules,
+ UnicodeString &formattedNumber,
+ FieldPosition &pos,
+ UErrorCode &status);
+
+ /**
+ * Formats the pattern with the value and adjusts the FieldPosition.
+ */
+ static UnicodeString &format(
+ const SimplePatternFormatter &pattern,
+ const UnicodeString &value,
+ UnicodeString &appendTo,
+ FieldPosition &pos,
+ UErrorCode &status);
+
private:
- SimplePatternFormatter *formatters[6];
+ SimplePatternFormatter *formatters[StandardPlural::COUNT];
};
U_NAMESPACE_END
« no previous file with comments | « source/i18n/plurrule_impl.h ('k') | source/i18n/quantityformatter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698