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

Unified Diff: source/i18n/unicode/smpdtfmt.h

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
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/unicode/scientificnumberformatter.h ('k') | source/i18n/unicode/tblcoll.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/i18n/unicode/smpdtfmt.h
diff --git a/source/i18n/unicode/smpdtfmt.h b/source/i18n/unicode/smpdtfmt.h
index d41fb59f713ff9323885fb8c0e2468af1690b53e..e6e96ae30d2cde7b61e6a28bc9aed45066f30625 100644
--- a/source/i18n/unicode/smpdtfmt.h
+++ b/source/i18n/unicode/smpdtfmt.h
@@ -1,5 +1,5 @@
/*
-* Copyright (C) 1997-2014, International Business Machines Corporation and
+* Copyright (C) 1997-2015, International Business Machines Corporation and
* others. All Rights Reserved.
*******************************************************************************
*
@@ -45,6 +45,8 @@ class DateFormat;
class MessageFormat;
class FieldPositionHandler;
class TimeZoneFormat;
+class SharedNumberFormat;
+class SimpleDateFormatMutableNFs;
/**
*
@@ -1117,7 +1119,6 @@ public:
*/
virtual const TimeZoneFormat* getTimeZoneFormat(void) const;
- /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
/**
* Set a particular UDisplayContext value in the formatter, such as
* UDISPCTX_CAPITALIZATION_FOR_STANDALONE. Note: For getContext, see
@@ -1126,17 +1127,16 @@ public:
* @param status Input/output status. If at entry this indicates a failure
* status, the function will do nothing; otherwise this will be
* updated with any new status from the function.
- * @draft ICU 53
+ * @stable ICU 53
*/
virtual void setContext(UDisplayContext value, UErrorCode& status);
-#ifndef U_HIDE_DRAFT_API
/**
* Overrides base class method and
* This method clears per field NumberFormat instances
* previously set by {@see adoptNumberFormat(const UnicodeString&, NumberFormat*, UErrorCode)}
* @param adoptNF the NumbeferFormat used
- * @draft ICU 54
+ * @stable ICU 54
*/
void adoptNumberFormat(NumberFormat *formatToAdopt);
@@ -1153,17 +1153,16 @@ public:
* @param adoptNF the NumbeferFormat used
* @param status Receives a status code, which will be U_ZERO_ERROR
* if the operation succeeds.
- * @draft ICU 54
+ * @stable ICU 54
*/
void adoptNumberFormat(const UnicodeString& fields, NumberFormat *formatToAdopt, UErrorCode &status);
/**
* Get the numbering system to be used for a particular field.
* @param field The UDateFormatField to get
- * @draft ICU 54
+ * @stable ICU 54
*/
const NumberFormat * getNumberFormatForField(UChar field) const;
-#endif /* U_HIDE_DRAFT_API */
#ifndef U_HIDE_INTERNAL_API
/**
@@ -1261,6 +1260,7 @@ private:
int32_t fieldNum,
FieldPositionHandler& handler,
Calendar& cal,
+ SimpleDateFormatMutableNFs &mutableNFs,
UErrorCode& status) const; // in case of illegal argument
/**
@@ -1308,14 +1308,6 @@ private:
Calendar *initializeCalendar(TimeZone* adoptZone, const Locale& locale, UErrorCode& status);
/**
- * initializes fSymbols from parameters.
- * @param locale Locale of the symbols
- * @param calendar Alias to Calendar that will be used.
- * @param status Error code
- */
- void initializeSymbols(const Locale& locale, Calendar* calendar, UErrorCode& status);
-
- /**
* Called by several of the constructors to load pattern data and formatting symbols
* out of a resource bundle and initialize the locale based on it.
* @param timeStyle The time style, as passed to DateFormat::createDateInstance().
@@ -1407,7 +1399,7 @@ private:
*/
int32_t subParse(const UnicodeString& text, int32_t& start, UChar ch, int32_t count,
UBool obeyCount, UBool allowNegative, UBool ambiguousYear[], int32_t& saveHebrewMonth, Calendar& cal,
- int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType) const;
+ int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType, SimpleDateFormatMutableNFs &mutableNFs) const;
void parseInt(const UnicodeString& text,
Formattable& number,
@@ -1483,11 +1475,6 @@ private:
void initNumberFormatters(const Locale &locale,UErrorCode &status);
/**
- * Get the numbering system to be used for a particular field.
- */
- NumberFormat * getNumberFormatByIndex(UDateFormatField index) const;
-
- /**
* Parse the given override string and set up structures for number formats
*/
void processOverrideString(const Locale &locale, const UnicodeString &str, int8_t type, UErrorCode &status);
@@ -1507,6 +1494,8 @@ private:
*/
TimeZoneFormat *tzFormat() const;
+ const NumberFormat* getNumberFormatByIndex(UDateFormatField index) const;
+
/**
* Used to map Calendar field to field level.
* The larger the level, the smaller the field unit.
@@ -1514,7 +1503,16 @@ private:
* UCAL_MONTH level is 20.
*/
static const int32_t fgCalendarFieldToLevel[];
- static const int32_t fgPatternCharToLevel[];
+
+ /**
+ * Map calendar field letter into calendar field level.
+ */
+ static int32_t getLevelFromChar(UChar ch);
+
+ /**
+ * Tell if a character can be used to define a field in a format string.
+ */
+ static UBool isSyntaxChar(UChar ch);
/**
* The formatting pattern for this formatter.
@@ -1563,15 +1561,21 @@ private:
*/
/*transient*/ int32_t fDefaultCenturyStartYear;
- typedef struct NSOverride {
- NumberFormat *nf;
+ struct NSOverride : public UMemory {
+ const SharedNumberFormat *snf;
int32_t hash;
NSOverride *next;
- } NSOverride;
-
- NumberFormat **fNumberFormatters;
+ void free();
+ NSOverride() : snf(NULL), hash(0), next(NULL) {
+ }
+ ~NSOverride();
+ };
- NSOverride *fOverrideList;
+ /**
+ * The number format in use for each date field. NULL means fall back
+ * to fNumberFormat in DateFormat.
+ */
+ const SharedNumberFormat **fSharedNumberFormatters;
UBool fHaveDefaultCentury;
« no previous file with comments | « source/i18n/unicode/scientificnumberformatter.h ('k') | source/i18n/unicode/tblcoll.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698