| Index: source/i18n/unicode/dtptngen.h
|
| diff --git a/source/i18n/unicode/dtptngen.h b/source/i18n/unicode/dtptngen.h
|
| index 4a14377a256d75f584cc3999a05d1c86071e9413..fd617ce3cdcbfb2944ba2f64a320ca7a9bbc74ff 100644
|
| --- a/source/i18n/unicode/dtptngen.h
|
| +++ b/source/i18n/unicode/dtptngen.h
|
| @@ -1,6 +1,8 @@
|
| +// Copyright (C) 2016 and later: Unicode, Inc. and others.
|
| +// License & terms of use: http://www.unicode.org/copyright.html
|
| /*
|
| *******************************************************************************
|
| -* Copyright (C) 2007-2015, International Business Machines Corporation and
|
| +* Copyright (C) 2007-2016, International Business Machines Corporation and
|
| * others. All Rights Reserved.
|
| *******************************************************************************
|
| *
|
| @@ -34,15 +36,15 @@ class PtnSkeleton;
|
| class SharedDateTimePatternGenerator;
|
|
|
| /**
|
| - * This class provides flexible generation of date format patterns, like "yy-MM-dd".
|
| - * The user can build up the generator by adding successive patterns. Once that
|
| + * This class provides flexible generation of date format patterns, like "yy-MM-dd".
|
| + * The user can build up the generator by adding successive patterns. Once that
|
| * is done, a query can be made using a "skeleton", which is a pattern which just
|
| - * includes the desired fields and lengths. The generator will return the "best fit"
|
| + * includes the desired fields and lengths. The generator will return the "best fit"
|
| * pattern corresponding to that skeleton.
|
| * <p>The main method people will use is getBestPattern(String skeleton),
|
| - * since normally this class is pre-built with data from a particular locale.
|
| + * since normally this class is pre-built with data from a particular locale.
|
| * However, generators can be built directly from other data as well.
|
| - * <p><i>Issue: may be useful to also have a function that returns the list of
|
| + * <p><i>Issue: may be useful to also have a function that returns the list of
|
| * fields in a pattern, in order, since we have that internally.
|
| * That would be useful for getting the UI order of field elements.</i>
|
| * @stable ICU 3.8
|
| @@ -84,7 +86,7 @@ public:
|
| * @stable ICU 3.8
|
| */
|
| static DateTimePatternGenerator* U_EXPORT2 createEmptyInstance(UErrorCode& status);
|
| -
|
| +
|
| /**
|
| * Destructor.
|
| * @stable ICU 3.8
|
| @@ -92,7 +94,7 @@ public:
|
| virtual ~DateTimePatternGenerator();
|
|
|
| /**
|
| - * Clone DateTimePatternGenerator object. Clients are responsible for
|
| + * Clone DateTimePatternGenerator object. Clients are responsible for
|
| * deleting the DateTimePatternGenerator object cloned.
|
| * @stable ICU 3.8
|
| */
|
| @@ -106,7 +108,7 @@ public:
|
| * @stable ICU 3.8
|
| */
|
| UBool operator==(const DateTimePatternGenerator& other) const;
|
| -
|
| +
|
| /**
|
| * Return true if another object is semantically unequal to this one.
|
| *
|
| @@ -116,7 +118,6 @@ public:
|
| */
|
| UBool operator!=(const DateTimePatternGenerator& other) const;
|
|
|
| -#ifndef U_HIDE_DRAFT_API
|
| /**
|
| * Utility to return a unique skeleton from a given pattern. For example,
|
| * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd".
|
| @@ -125,10 +126,9 @@ public:
|
| * @param status Output param set to success/failure code on exit,
|
| * which must not indicate a failure before the function call.
|
| * @return skeleton such as "MMMdd"
|
| - * @draft ICU 56
|
| + * @stable ICU 56
|
| */
|
| static UnicodeString staticGetSkeleton(const UnicodeString& pattern, UErrorCode& status);
|
| -#endif /* U_HIDE_DRAFT_API */
|
|
|
| /**
|
| * Utility to return a unique skeleton from a given pattern. For example,
|
| @@ -142,11 +142,13 @@ public:
|
| * @return skeleton such as "MMMdd"
|
| * @stable ICU 3.8
|
| */
|
| - UnicodeString getSkeleton(const UnicodeString& pattern, UErrorCode& status) {
|
| + UnicodeString getSkeleton(const UnicodeString& pattern, UErrorCode& status); /* {
|
| + The function is commented out because it is a stable API calling a draft API.
|
| + After staticGetSkeleton becomes stable, staticGetSkeleton can be used and
|
| + these comments and the definition of getSkeleton in dtptngen.cpp should be removed.
|
| return staticGetSkeleton(pattern, status);
|
| - }
|
| + }*/
|
|
|
| -#ifndef U_HIDE_DRAFT_API
|
| /**
|
| * Utility to return a unique base skeleton from a given pattern. This is
|
| * the same as the skeleton, except that differences in length are minimized
|
| @@ -158,10 +160,9 @@ public:
|
| * @param status Output param set to success/failure code on exit,
|
| * which must not indicate a failure before the function call.
|
| * @return base skeleton, such as "MMMd"
|
| - * @draft ICU 56
|
| + * @stable ICU 56
|
| */
|
| static UnicodeString staticGetBaseSkeleton(const UnicodeString& pattern, UErrorCode& status);
|
| -#endif /* U_HIDE_DRAFT_API */
|
|
|
| /**
|
| * Utility to return a unique base skeleton from a given pattern. This is
|
| @@ -178,27 +179,30 @@ public:
|
| * @return base skeleton, such as "MMMd"
|
| * @stable ICU 3.8
|
| */
|
| - UnicodeString getBaseSkeleton(const UnicodeString& pattern, UErrorCode& status) {
|
| + UnicodeString getBaseSkeleton(const UnicodeString& pattern, UErrorCode& status); /* {
|
| + The function is commented out because it is a stable API calling a draft API.
|
| + After staticGetBaseSkeleton becomes stable, staticGetBaseSkeleton can be used and
|
| + these comments and the definition of getBaseSkeleton in dtptngen.cpp should be removed.
|
| return staticGetBaseSkeleton(pattern, status);
|
| - }
|
| + }*/
|
|
|
| /**
|
| * Adds a pattern to the generator. If the pattern has the same skeleton as
|
| * an existing pattern, and the override parameter is set, then the previous
|
| * value is overriden. Otherwise, the previous value is retained. In either
|
| - * case, the conflicting status is set and previous vale is stored in
|
| + * case, the conflicting status is set and previous vale is stored in
|
| * conflicting pattern.
|
| * <p>
|
| * Note that single-field patterns (like "MMM") are automatically added, and
|
| * don't need to be added explicitly!
|
| *
|
| * @param pattern Input pattern, such as "dd/MMM"
|
| - * @param override When existing values are to be overridden use true,
|
| + * @param override When existing values are to be overridden use true,
|
| * otherwise use false.
|
| * @param conflictingPattern Previous pattern with the same skeleton.
|
| * @param status Output param set to success/failure code on exit,
|
| * which must not indicate a failure before the function call.
|
| - * @return conflicting status. The value could be UDATPG_NO_CONFLICT,
|
| + * @return conflicting status. The value could be UDATPG_NO_CONFLICT,
|
| * UDATPG_BASE_CONFLICT or UDATPG_CONFLICT.
|
| * @stable ICU 3.8
|
| * <p>
|
| @@ -207,8 +211,8 @@ public:
|
| * \snippet samples/dtptngsample/dtptngsample.cpp addPatternExample
|
| * <p>
|
| */
|
| - UDateTimePatternConflict addPattern(const UnicodeString& pattern,
|
| - UBool override,
|
| + UDateTimePatternConflict addPattern(const UnicodeString& pattern,
|
| + UBool override,
|
| UnicodeString& conflictingPattern,
|
| UErrorCode& status);
|
|
|
| @@ -361,8 +365,8 @@ public:
|
| * \snippet samples/dtptngsample/dtptngsample.cpp replaceFieldTypesExample
|
| * <p>
|
| */
|
| - UnicodeString replaceFieldTypes(const UnicodeString& pattern,
|
| - const UnicodeString& skeleton,
|
| + UnicodeString replaceFieldTypes(const UnicodeString& pattern,
|
| + const UnicodeString& skeleton,
|
| UErrorCode& status);
|
|
|
| /**
|
| @@ -387,8 +391,8 @@ public:
|
| * @return pattern adjusted to match the skeleton fields widths and subtypes.
|
| * @stable ICU 4.4
|
| */
|
| - UnicodeString replaceFieldTypes(const UnicodeString& pattern,
|
| - const UnicodeString& skeleton,
|
| + UnicodeString replaceFieldTypes(const UnicodeString& pattern,
|
| + const UnicodeString& skeleton,
|
| UDateTimePatternMatchOptions options,
|
| UErrorCode& status);
|
|
|
| @@ -407,12 +411,12 @@ public:
|
|
|
| /**
|
| * Get the pattern corresponding to a given skeleton.
|
| - * @param skeleton
|
| + * @param skeleton
|
| * @return pattern corresponding to a given skeleton.
|
| * @stable ICU 3.8
|
| */
|
| const UnicodeString& getPatternForSkeleton(const UnicodeString& skeleton) const;
|
| -
|
| +
|
| /**
|
| * Return a list of all the base skeletons (in canonical form) from this class.
|
| *
|
| @@ -426,11 +430,11 @@ public:
|
|
|
| #ifndef U_HIDE_INTERNAL_API
|
| /**
|
| - * Return a list of redundant patterns are those which if removed, make no
|
| - * difference in the resulting getBestPattern values. This method returns a
|
| - * list of them, to help check the consistency of the patterns used to build
|
| + * Return a list of redundant patterns are those which if removed, make no
|
| + * difference in the resulting getBestPattern values. This method returns a
|
| + * list of them, to help check the consistency of the patterns used to build
|
| * this generator.
|
| - *
|
| + *
|
| * @param status Output param set to success/failure code on exit,
|
| * which must not indicate a failure before the function call.
|
| * @return a StringEnumeration with the redundant pattern.
|
| @@ -448,7 +452,7 @@ public:
|
| * the decimal string is ",". Then the resulting pattern is modified to be
|
| * "H:mm:ss,SSSS"
|
| *
|
| - * @param decimal
|
| + * @param decimal
|
| * @stable ICU 3.8
|
| */
|
| void setDecimal(const UnicodeString& decimal);
|
| @@ -512,21 +516,26 @@ private:
|
| UnicodeString decimal;
|
| DateTimeMatcher *skipMatcher;
|
| Hashtable *fAvailableFormatKeyHash;
|
| - UnicodeString hackPattern;
|
| UnicodeString emptyString;
|
| UChar fDefaultHourFormatChar;
|
| -
|
| +
|
| + int32_t fAllowedHourFormats[7]; // Actually an array of AllowedHourFormat enum type, ending with UNKNOWN.
|
| +
|
| /* internal flags masks for adjustFieldTypes etc. */
|
| enum {
|
| kDTPGNoFlags = 0,
|
| kDTPGFixFractionalSeconds = 1,
|
| - kDTPGSkeletonUsesCapJ = 2
|
| + kDTPGSkeletonUsesCapJ = 2,
|
| + kDTPGSkeletonUsesLowB = 3,
|
| + kDTPGSkeletonUsesCapB = 4
|
| };
|
|
|
| void initData(const Locale &locale, UErrorCode &status);
|
| - void addCanonicalItems();
|
| + void addCanonicalItems(UErrorCode &status);
|
| void addICUPatterns(const Locale& locale, UErrorCode& status);
|
| void hackTimes(const UnicodeString& hackPattern, UErrorCode& status);
|
| + void getCalendarTypeToUse(const Locale& locale, CharString& destination, UErrorCode& err);
|
| + void consumeShortTimePattern(const UnicodeString& shortTimePattern, UErrorCode& status);
|
| void addCLDRData(const Locale& locale, UErrorCode& status);
|
| UDateTimePatternConflict addPatternWithSkeleton(const UnicodeString& pattern, const UnicodeString * skeletonToUse, UBool override, UnicodeString& conflictingPattern, UErrorCode& status);
|
| void initHashtable(UErrorCode& status);
|
| @@ -534,6 +543,7 @@ private:
|
| void setDecimalSymbols(const Locale& locale, UErrorCode& status);
|
| UDateTimePatternField getAppendFormatNumber(const char* field) const;
|
| UDateTimePatternField getAppendNameNumber(const char* field) const;
|
| + UnicodeString& getMutableAppendItemName(UDateTimePatternField field);
|
| void getAppendName(UDateTimePatternField field, UnicodeString& value);
|
| int32_t getCanonicalIndex(const UnicodeString& field);
|
| const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, const PtnSkeleton** specifiedSkeletonPtr = 0);
|
| @@ -544,6 +554,12 @@ private:
|
| UBool isAvailableFormatSet(const UnicodeString &key) const;
|
| void copyHashtable(Hashtable *other, UErrorCode &status);
|
| UBool isCanonicalItem(const UnicodeString& item) const;
|
| + static void U_CALLCONV loadAllowedHourFormatsData(UErrorCode &status);
|
| + void getAllowedHourFormats(const Locale &locale, UErrorCode &status);
|
| +
|
| + struct AppendItemFormatsSink;
|
| + struct AppendItemNamesSink;
|
| + struct AvailableFormatsSink;
|
| } ;// end class DateTimePatternGenerator
|
|
|
| U_NAMESPACE_END
|
|
|