| OLD | NEW |
| 1 /* | 1 /* |
| 2 ******************************************************************************* | 2 ******************************************************************************* |
| 3 * Copyright (C) 2007-2013, International Business Machines Corporation and | 3 * Copyright (C) 2007-2015, International Business Machines Corporation and |
| 4 * others. All Rights Reserved. | 4 * others. All Rights Reserved. |
| 5 ******************************************************************************* | 5 ******************************************************************************* |
| 6 * | 6 * |
| 7 * File DTPTNGEN.H | 7 * File DTPTNGEN.H |
| 8 * | 8 * |
| 9 ******************************************************************************* | 9 ******************************************************************************* |
| 10 */ | 10 */ |
| 11 | 11 |
| 12 #ifndef __DTPTNGEN_H__ | 12 #ifndef __DTPTNGEN_H__ |
| 13 #define __DTPTNGEN_H__ | 13 #define __DTPTNGEN_H__ |
| (...skipping 10 matching lines...) Expand all Loading... |
| 24 * \brief C++ API: Date/Time Pattern Generator | 24 * \brief C++ API: Date/Time Pattern Generator |
| 25 */ | 25 */ |
| 26 | 26 |
| 27 | 27 |
| 28 class Hashtable; | 28 class Hashtable; |
| 29 class FormatParser; | 29 class FormatParser; |
| 30 class DateTimeMatcher; | 30 class DateTimeMatcher; |
| 31 class DistanceInfo; | 31 class DistanceInfo; |
| 32 class PatternMap; | 32 class PatternMap; |
| 33 class PtnSkeleton; | 33 class PtnSkeleton; |
| 34 class SharedDateTimePatternGenerator; |
| 34 | 35 |
| 35 /** | 36 /** |
| 36 * This class provides flexible generation of date format patterns, like "yy-MM-
dd". | 37 * This class provides flexible generation of date format patterns, like "yy-MM-
dd". |
| 37 * The user can build up the generator by adding successive patterns. Once that | 38 * The user can build up the generator by adding successive patterns. Once that |
| 38 * is done, a query can be made using a "skeleton", which is a pattern which jus
t | 39 * is done, a query can be made using a "skeleton", which is a pattern which jus
t |
| 39 * includes the desired fields and lengths. The generator will return the "best
fit" | 40 * includes the desired fields and lengths. The generator will return the "best
fit" |
| 40 * pattern corresponding to that skeleton. | 41 * pattern corresponding to that skeleton. |
| 41 * <p>The main method people will use is getBestPattern(String skeleton), | 42 * <p>The main method people will use is getBestPattern(String skeleton), |
| 42 * since normally this class is pre-built with data from a particular locale. | 43 * since normally this class is pre-built with data from a particular locale. |
| 43 * However, generators can be built directly from other data as well. | 44 * However, generators can be built directly from other data as well. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 58 | 59 |
| 59 /** | 60 /** |
| 60 * Construct a flexible generator according to data for a given locale. | 61 * Construct a flexible generator according to data for a given locale. |
| 61 * @param uLocale | 62 * @param uLocale |
| 62 * @param status Output param set to success/failure code on exit, | 63 * @param status Output param set to success/failure code on exit, |
| 63 * which must not indicate a failure before the function call. | 64 * which must not indicate a failure before the function call. |
| 64 * @stable ICU 3.8 | 65 * @stable ICU 3.8 |
| 65 */ | 66 */ |
| 66 static DateTimePatternGenerator* U_EXPORT2 createInstance(const Locale& uLoc
ale, UErrorCode& status); | 67 static DateTimePatternGenerator* U_EXPORT2 createInstance(const Locale& uLoc
ale, UErrorCode& status); |
| 67 | 68 |
| 69 #ifndef U_HIDE_INTERNAL_API |
| 70 |
| 71 /** |
| 72 * For ICU use only |
| 73 * |
| 74 * @internal |
| 75 */ |
| 76 static DateTimePatternGenerator* U_EXPORT2 internalMakeInstance(const Locale
& uLocale, UErrorCode& status); |
| 77 |
| 78 #endif /* U_HIDE_INTERNAL_API */ |
| 79 |
| 68 /** | 80 /** |
| 69 * Create an empty generator, to be constructed with addPattern(...) etc. | 81 * Create an empty generator, to be constructed with addPattern(...) etc. |
| 70 * @param status Output param set to success/failure code on exit, | 82 * @param status Output param set to success/failure code on exit, |
| 71 * which must not indicate a failure before the function call. | 83 * which must not indicate a failure before the function call. |
| 72 * @stable ICU 3.8 | 84 * @stable ICU 3.8 |
| 73 */ | 85 */ |
| 74 static DateTimePatternGenerator* U_EXPORT2 createEmptyInstance(UErrorCode&
status); | 86 static DateTimePatternGenerator* U_EXPORT2 createEmptyInstance(UErrorCode&
status); |
| 75 | 87 |
| 76 /** | 88 /** |
| 77 * Destructor. | 89 * Destructor. |
| (...skipping 19 matching lines...) Expand all Loading... |
| 97 | 109 |
| 98 /** | 110 /** |
| 99 * Return true if another object is semantically unequal to this one. | 111 * Return true if another object is semantically unequal to this one. |
| 100 * | 112 * |
| 101 * @param other the DateTimePatternGenerator object to be compared with. | 113 * @param other the DateTimePatternGenerator object to be compared with. |
| 102 * @return true if other is semantically unequal to this. | 114 * @return true if other is semantically unequal to this. |
| 103 * @stable ICU 3.8 | 115 * @stable ICU 3.8 |
| 104 */ | 116 */ |
| 105 UBool operator!=(const DateTimePatternGenerator& other) const; | 117 UBool operator!=(const DateTimePatternGenerator& other) const; |
| 106 | 118 |
| 119 #ifndef U_HIDE_DRAFT_API |
| 107 /** | 120 /** |
| 108 * Utility to return a unique skeleton from a given pattern. For example, | 121 * Utility to return a unique skeleton from a given pattern. For example, |
| 109 * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd". | 122 * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd". |
| 110 * | 123 * |
| 111 * @param pattern Input pattern, such as "dd/MMM" | 124 * @param pattern Input pattern, such as "dd/MMM" |
| 112 * @param status Output param set to success/failure code on exit, | 125 * @param status Output param set to success/failure code on exit, |
| 113 * which must not indicate a failure before the function ca
ll. | 126 * which must not indicate a failure before the function ca
ll. |
| 114 * @return skeleton such as "MMMdd" | 127 * @return skeleton such as "MMMdd" |
| 128 * @draft ICU 56 |
| 129 */ |
| 130 static UnicodeString staticGetSkeleton(const UnicodeString& pattern, UErrorC
ode& status); |
| 131 #endif /* U_HIDE_DRAFT_API */ |
| 132 |
| 133 /** |
| 134 * Utility to return a unique skeleton from a given pattern. For example, |
| 135 * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd". |
| 136 * getSkeleton() works exactly like staticGetSkeleton(). |
| 137 * Use staticGetSkeleton() instead of getSkeleton(). |
| 138 * |
| 139 * @param pattern Input pattern, such as "dd/MMM" |
| 140 * @param status Output param set to success/failure code on exit, |
| 141 * which must not indicate a failure before the function ca
ll. |
| 142 * @return skeleton such as "MMMdd" |
| 115 * @stable ICU 3.8 | 143 * @stable ICU 3.8 |
| 116 */ | 144 */ |
| 117 UnicodeString getSkeleton(const UnicodeString& pattern, UErrorCode& status); | 145 UnicodeString getSkeleton(const UnicodeString& pattern, UErrorCode& status)
{ |
| 146 return staticGetSkeleton(pattern, status); |
| 147 } |
| 148 |
| 149 #ifndef U_HIDE_DRAFT_API |
| 150 /** |
| 151 * Utility to return a unique base skeleton from a given pattern. This is |
| 152 * the same as the skeleton, except that differences in length are minimized |
| 153 * so as to only preserve the difference between string and numeric form. So |
| 154 * for example, both "MMM-dd" and "d/MMM" produce the skeleton "MMMd" |
| 155 * (notice the single d). |
| 156 * |
| 157 * @param pattern Input pattern, such as "dd/MMM" |
| 158 * @param status Output param set to success/failure code on exit, |
| 159 * which must not indicate a failure before the function call. |
| 160 * @return base skeleton, such as "MMMd" |
| 161 * @draft ICU 56 |
| 162 */ |
| 163 static UnicodeString staticGetBaseSkeleton(const UnicodeString& pattern, UEr
rorCode& status); |
| 164 #endif /* U_HIDE_DRAFT_API */ |
| 118 | 165 |
| 119 /** | 166 /** |
| 120 * Utility to return a unique base skeleton from a given pattern. This is | 167 * Utility to return a unique base skeleton from a given pattern. This is |
| 121 * the same as the skeleton, except that differences in length are minimized | 168 * the same as the skeleton, except that differences in length are minimized |
| 122 * so as to only preserve the difference between string and numeric form. So | 169 * so as to only preserve the difference between string and numeric form. So |
| 123 * for example, both "MMM-dd" and "d/MMM" produce the skeleton "MMMd" | 170 * for example, both "MMM-dd" and "d/MMM" produce the skeleton "MMMd" |
| 124 * (notice the single d). | 171 * (notice the single d). |
| 172 * getBaseSkeleton() works exactly like staticGetBaseSkeleton(). |
| 173 * Use staticGetBaseSkeleton() instead of getBaseSkeleton(). |
| 125 * | 174 * |
| 126 * @param pattern Input pattern, such as "dd/MMM" | 175 * @param pattern Input pattern, such as "dd/MMM" |
| 127 * @param status Output param set to success/failure code on exit, | 176 * @param status Output param set to success/failure code on exit, |
| 128 * which must not indicate a failure before the function call. | 177 * which must not indicate a failure before the function call. |
| 129 * @return base skeleton, such as "Md" | 178 * @return base skeleton, such as "MMMd" |
| 130 * @stable ICU 3.8 | 179 * @stable ICU 3.8 |
| 131 */ | 180 */ |
| 132 UnicodeString getBaseSkeleton(const UnicodeString& pattern, UErrorCode& stat
us); | 181 UnicodeString getBaseSkeleton(const UnicodeString& pattern, UErrorCode& stat
us) { |
| 182 return staticGetBaseSkeleton(pattern, status); |
| 183 } |
| 133 | 184 |
| 134 /** | 185 /** |
| 135 * Adds a pattern to the generator. If the pattern has the same skeleton as | 186 * Adds a pattern to the generator. If the pattern has the same skeleton as |
| 136 * an existing pattern, and the override parameter is set, then the previous | 187 * an existing pattern, and the override parameter is set, then the previous |
| 137 * value is overriden. Otherwise, the previous value is retained. In either | 188 * value is overriden. Otherwise, the previous value is retained. In either |
| 138 * case, the conflicting status is set and previous vale is stored in | 189 * case, the conflicting status is set and previous vale is stored in |
| 139 * conflicting pattern. | 190 * conflicting pattern. |
| 140 * <p> | 191 * <p> |
| 141 * Note that single-field patterns (like "MMM") are automatically added, and | 192 * Note that single-field patterns (like "MMM") are automatically added, and |
| 142 * don't need to be added explicitly! | 193 * don't need to be added explicitly! |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 * Getter corresponding to setAppendItemNames. Values below 0 or at or above | 259 * Getter corresponding to setAppendItemNames. Values below 0 or at or above |
| 209 * UDATPG_FIELD_COUNT are illegal arguments. | 260 * UDATPG_FIELD_COUNT are illegal arguments. |
| 210 * | 261 * |
| 211 * @param field such as UDATPG_ERA_FIELD. | 262 * @param field such as UDATPG_ERA_FIELD. |
| 212 * @return name for field | 263 * @return name for field |
| 213 * @stable ICU 3.8 | 264 * @stable ICU 3.8 |
| 214 */ | 265 */ |
| 215 const UnicodeString& getAppendItemName(UDateTimePatternField field) const; | 266 const UnicodeString& getAppendItemName(UDateTimePatternField field) const; |
| 216 | 267 |
| 217 /** | 268 /** |
| 218 * The date time format is a message format pattern used to compose date and | 269 * The DateTimeFormat is a message format pattern used to compose date and |
| 219 * time patterns. The default value is "{0} {1}", where {0} will be replaced | 270 * time patterns. The default pattern in the root locale is "{1} {0}", where |
| 220 * by the date pattern and {1} will be replaced by the time pattern. | 271 * {1} will be replaced by the date pattern and {0} will be replaced by the |
| 272 * time pattern; however, other locales may specify patterns such as |
| 273 * "{1}, {0}" or "{1} 'at' {0}", etc. |
| 221 * <p> | 274 * <p> |
| 222 * This is used when the input skeleton contains both date and time fields, | 275 * This is used when the input skeleton contains both date and time fields, |
| 223 * but there is not a close match among the added patterns. For example, | 276 * but there is not a close match among the added patterns. For example, |
| 224 * suppose that this object was created by adding "dd-MMM" and "hh:mm", and | 277 * suppose that this object was created by adding "dd-MMM" and "hh:mm", and |
| 225 * its datetimeFormat is the default "{0} {1}". Then if the input skeleton | 278 * its datetimeFormat is the default "{1} {0}". Then if the input skeleton |
| 226 * is "MMMdhmm", there is not an exact match, so the input skeleton is | 279 * is "MMMdhmm", there is not an exact match, so the input skeleton is |
| 227 * broken up into two components "MMMd" and "hmm". There are close matches | 280 * broken up into two components "MMMd" and "hmm". There are close matches |
| 228 * for those two skeletons, so the result is put together with this pattern, | 281 * for those two skeletons, so the result is put together with this pattern, |
| 229 * resulting in "d-MMM h:mm". | 282 * resulting in "d-MMM h:mm". |
| 230 * | 283 * |
| 231 * @param dateTimeFormat | 284 * @param dateTimeFormat |
| 232 * message format pattern, here {0} will be replaced by the date | 285 * message format pattern, here {1} will be replaced by the date |
| 233 * pattern and {1} will be replaced by the time pattern. | 286 * pattern and {0} will be replaced by the time pattern. |
| 234 * @stable ICU 3.8 | 287 * @stable ICU 3.8 |
| 235 */ | 288 */ |
| 236 void setDateTimeFormat(const UnicodeString& dateTimeFormat); | 289 void setDateTimeFormat(const UnicodeString& dateTimeFormat); |
| 237 | 290 |
| 238 /** | 291 /** |
| 239 * Getter corresponding to setDateTimeFormat. | 292 * Getter corresponding to setDateTimeFormat. |
| 240 * @return DateTimeFormat. | 293 * @return DateTimeFormat. |
| 241 * @stable ICU 3.8 | 294 * @stable ICU 3.8 |
| 242 */ | 295 */ |
| 243 const UnicodeString& getDateTimeFormat() const; | 296 const UnicodeString& getDateTimeFormat() const; |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 int32_t getTopBitNumber(int32_t foundMask); | 542 int32_t getTopBitNumber(int32_t foundMask); |
| 490 void setAvailableFormat(const UnicodeString &key, UErrorCode& status); | 543 void setAvailableFormat(const UnicodeString &key, UErrorCode& status); |
| 491 UBool isAvailableFormatSet(const UnicodeString &key) const; | 544 UBool isAvailableFormatSet(const UnicodeString &key) const; |
| 492 void copyHashtable(Hashtable *other, UErrorCode &status); | 545 void copyHashtable(Hashtable *other, UErrorCode &status); |
| 493 UBool isCanonicalItem(const UnicodeString& item) const; | 546 UBool isCanonicalItem(const UnicodeString& item) const; |
| 494 } ;// end class DateTimePatternGenerator | 547 } ;// end class DateTimePatternGenerator |
| 495 | 548 |
| 496 U_NAMESPACE_END | 549 U_NAMESPACE_END |
| 497 | 550 |
| 498 #endif | 551 #endif |
| OLD | NEW |