Index: icu46/source/i18n/udatpg.cpp |
=================================================================== |
--- icu46/source/i18n/udatpg.cpp (revision 0) |
+++ icu46/source/i18n/udatpg.cpp (revision 0) |
@@ -0,0 +1,271 @@ |
+/* |
+******************************************************************************* |
+* |
+* Copyright (C) 2009, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+* |
+******************************************************************************* |
+* file name: udatpg.cpp |
+* encoding: US-ASCII |
+* tab size: 8 (not used) |
+* indentation:4 |
+* |
+* created on: 2007jul30 |
+* created by: Markus W. Scherer |
+*/ |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_FORMATTING |
+ |
+#include "unicode/udatpg.h" |
+#include "unicode/uenum.h" |
+#include "unicode/strenum.h" |
+#include "unicode/dtptngen.h" |
+#include "ustrenum.h" |
+ |
+U_NAMESPACE_USE |
+ |
+U_DRAFT UDateTimePatternGenerator * U_EXPORT2 |
+udatpg_open(const char *locale, UErrorCode *pErrorCode) { |
+ if(locale==NULL) { |
+ return (UDateTimePatternGenerator *)DateTimePatternGenerator::createInstance(*pErrorCode); |
+ } else { |
+ return (UDateTimePatternGenerator *)DateTimePatternGenerator::createInstance(Locale(locale), *pErrorCode); |
+ } |
+} |
+ |
+U_DRAFT UDateTimePatternGenerator * U_EXPORT2 |
+udatpg_openEmpty(UErrorCode *pErrorCode) { |
+ return (UDateTimePatternGenerator *)DateTimePatternGenerator::createEmptyInstance(*pErrorCode); |
+} |
+ |
+U_DRAFT void U_EXPORT2 |
+udatpg_close(UDateTimePatternGenerator *dtpg) { |
+ delete (DateTimePatternGenerator *)dtpg; |
+} |
+ |
+U_DRAFT UDateTimePatternGenerator * U_EXPORT2 |
+udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode) { |
+ if(U_FAILURE(*pErrorCode)) { |
+ return NULL; |
+ } |
+ return (UDateTimePatternGenerator *)(((const DateTimePatternGenerator *)dtpg)->clone()); |
+} |
+ |
+U_DRAFT int32_t U_EXPORT2 |
+udatpg_getBestPattern(UDateTimePatternGenerator *dtpg, |
+ const UChar *skeleton, int32_t length, |
+ UChar *bestPattern, int32_t capacity, |
+ UErrorCode *pErrorCode) { |
+ return udatpg_getBestPatternWithOptions(dtpg, skeleton, length, |
+ UDATPG_MATCH_NO_OPTIONS, |
+ bestPattern, capacity, pErrorCode); |
+} |
+ |
+U_DRAFT int32_t U_EXPORT2 |
+udatpg_getBestPatternWithOptions(UDateTimePatternGenerator *dtpg, |
+ const UChar *skeleton, int32_t length, |
+ UDateTimePatternMatchOptions options, |
+ UChar *bestPattern, int32_t capacity, |
+ UErrorCode *pErrorCode) { |
+ if(U_FAILURE(*pErrorCode)) { |
+ return 0; |
+ } |
+ if(skeleton==NULL && length!=0) { |
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; |
+ return 0; |
+ } |
+ UnicodeString skeletonString((UBool)(length<0), skeleton, length); |
+ UnicodeString result=((DateTimePatternGenerator *)dtpg)->getBestPattern(skeletonString, options, *pErrorCode); |
+ return result.extract(bestPattern, capacity, *pErrorCode); |
+} |
+ |
+U_DRAFT int32_t U_EXPORT2 |
+udatpg_getSkeleton(UDateTimePatternGenerator *dtpg, |
+ const UChar *pattern, int32_t length, |
+ UChar *skeleton, int32_t capacity, |
+ UErrorCode *pErrorCode) { |
+ if(U_FAILURE(*pErrorCode)) { |
+ return 0; |
+ } |
+ if(pattern==NULL && length!=0) { |
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; |
+ return 0; |
+ } |
+ UnicodeString patternString((UBool)(length<0), pattern, length); |
+ UnicodeString result=((DateTimePatternGenerator *)dtpg)->getSkeleton(patternString, *pErrorCode); |
+ return result.extract(skeleton, capacity, *pErrorCode); |
+} |
+ |
+U_DRAFT int32_t U_EXPORT2 |
+udatpg_getBaseSkeleton(UDateTimePatternGenerator *dtpg, |
+ const UChar *pattern, int32_t length, |
+ UChar *skeleton, int32_t capacity, |
+ UErrorCode *pErrorCode) { |
+ if(U_FAILURE(*pErrorCode)) { |
+ return 0; |
+ } |
+ if(pattern==NULL && length!=0) { |
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; |
+ return 0; |
+ } |
+ UnicodeString patternString((UBool)(length<0), pattern, length); |
+ UnicodeString result=((DateTimePatternGenerator *)dtpg)->getBaseSkeleton(patternString, *pErrorCode); |
+ return result.extract(skeleton, capacity, *pErrorCode); |
+} |
+ |
+U_DRAFT UDateTimePatternConflict U_EXPORT2 |
+udatpg_addPattern(UDateTimePatternGenerator *dtpg, |
+ const UChar *pattern, int32_t patternLength, |
+ UBool override, |
+ UChar *conflictingPattern, int32_t capacity, int32_t *pLength, |
+ UErrorCode *pErrorCode) { |
+ if(U_FAILURE(*pErrorCode)) { |
+ return UDATPG_NO_CONFLICT; |
+ } |
+ if(pattern==NULL && patternLength!=0) { |
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; |
+ return UDATPG_NO_CONFLICT; |
+ } |
+ UnicodeString patternString((UBool)(patternLength<0), pattern, patternLength); |
+ UnicodeString conflictingPatternString; |
+ UDateTimePatternConflict result=((DateTimePatternGenerator *)dtpg)-> |
+ addPattern(patternString, override, conflictingPatternString, *pErrorCode); |
+ int32_t length=conflictingPatternString.extract(conflictingPattern, capacity, *pErrorCode); |
+ if(pLength!=NULL) { |
+ *pLength=length; |
+ } |
+ return result; |
+} |
+ |
+U_DRAFT void U_EXPORT2 |
+udatpg_setAppendItemFormat(UDateTimePatternGenerator *dtpg, |
+ UDateTimePatternField field, |
+ const UChar *value, int32_t length) { |
+ UnicodeString valueString((UBool)(length<0), value, length); |
+ ((DateTimePatternGenerator *)dtpg)->setAppendItemFormat(field, valueString); |
+} |
+ |
+U_DRAFT const UChar * U_EXPORT2 |
+udatpg_getAppendItemFormat(const UDateTimePatternGenerator *dtpg, |
+ UDateTimePatternField field, |
+ int32_t *pLength) { |
+ const UnicodeString &result=((const DateTimePatternGenerator *)dtpg)->getAppendItemFormat(field); |
+ if(pLength!=NULL) { |
+ *pLength=result.length(); |
+ } |
+ return result.getBuffer(); |
+} |
+ |
+U_DRAFT void U_EXPORT2 |
+udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg, |
+ UDateTimePatternField field, |
+ const UChar *value, int32_t length) { |
+ UnicodeString valueString((UBool)(length<0), value, length); |
+ ((DateTimePatternGenerator *)dtpg)->setAppendItemName(field, valueString); |
+} |
+ |
+U_DRAFT const UChar * U_EXPORT2 |
+udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg, |
+ UDateTimePatternField field, |
+ int32_t *pLength) { |
+ const UnicodeString &result=((const DateTimePatternGenerator *)dtpg)->getAppendItemName(field); |
+ if(pLength!=NULL) { |
+ *pLength=result.length(); |
+ } |
+ return result.getBuffer(); |
+} |
+ |
+U_DRAFT void U_EXPORT2 |
+udatpg_setDateTimeFormat(const UDateTimePatternGenerator *dtpg, |
+ const UChar *dtFormat, int32_t length) { |
+ UnicodeString dtFormatString((UBool)(length<0), dtFormat, length); |
+ ((DateTimePatternGenerator *)dtpg)->setDateTimeFormat(dtFormatString); |
+} |
+ |
+U_DRAFT const UChar * U_EXPORT2 |
+udatpg_getDateTimeFormat(const UDateTimePatternGenerator *dtpg, |
+ int32_t *pLength) { |
+ const UnicodeString &result=((const DateTimePatternGenerator *)dtpg)->getDateTimeFormat(); |
+ if(pLength!=NULL) { |
+ *pLength=result.length(); |
+ } |
+ return result.getBuffer(); |
+} |
+ |
+U_DRAFT void U_EXPORT2 |
+udatpg_setDecimal(UDateTimePatternGenerator *dtpg, |
+ const UChar *decimal, int32_t length) { |
+ UnicodeString decimalString((UBool)(length<0), decimal, length); |
+ ((DateTimePatternGenerator *)dtpg)->setDecimal(decimalString); |
+} |
+ |
+U_DRAFT const UChar * U_EXPORT2 |
+udatpg_getDecimal(const UDateTimePatternGenerator *dtpg, |
+ int32_t *pLength) { |
+ const UnicodeString &result=((const DateTimePatternGenerator *)dtpg)->getDecimal(); |
+ if(pLength!=NULL) { |
+ *pLength=result.length(); |
+ } |
+ return result.getBuffer(); |
+} |
+ |
+U_DRAFT int32_t U_EXPORT2 |
+udatpg_replaceFieldTypes(UDateTimePatternGenerator *dtpg, |
+ const UChar *pattern, int32_t patternLength, |
+ const UChar *skeleton, int32_t skeletonLength, |
+ UChar *dest, int32_t destCapacity, |
+ UErrorCode *pErrorCode) { |
+ return udatpg_replaceFieldTypesWithOptions(dtpg, pattern, patternLength, skeleton, skeletonLength, |
+ UDATPG_MATCH_NO_OPTIONS, |
+ dest, destCapacity, pErrorCode); |
+} |
+ |
+U_DRAFT int32_t U_EXPORT2 |
+udatpg_replaceFieldTypesWithOptions(UDateTimePatternGenerator *dtpg, |
+ const UChar *pattern, int32_t patternLength, |
+ const UChar *skeleton, int32_t skeletonLength, |
+ UDateTimePatternMatchOptions options, |
+ UChar *dest, int32_t destCapacity, |
+ UErrorCode *pErrorCode) { |
+ if(U_FAILURE(*pErrorCode)) { |
+ return 0; |
+ } |
+ if((pattern==NULL && patternLength!=0) || (skeleton==NULL && skeletonLength!=0)) { |
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; |
+ return 0; |
+ } |
+ UnicodeString patternString((UBool)(patternLength<0), pattern, patternLength); |
+ UnicodeString skeletonString((UBool)(skeletonLength<0), skeleton, skeletonLength); |
+ UnicodeString result=((DateTimePatternGenerator *)dtpg)->replaceFieldTypes(patternString, skeletonString, options, *pErrorCode); |
+ return result.extract(dest, destCapacity, *pErrorCode); |
+} |
+ |
+U_DRAFT UEnumeration * U_EXPORT2 |
+udatpg_openSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode) { |
+ return uenum_openFromStringEnumeration( |
+ ((DateTimePatternGenerator *)dtpg)->getSkeletons(*pErrorCode), |
+ pErrorCode); |
+} |
+ |
+U_DRAFT UEnumeration * U_EXPORT2 |
+udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode) { |
+ return uenum_openFromStringEnumeration( |
+ ((DateTimePatternGenerator *)dtpg)->getBaseSkeletons(*pErrorCode), |
+ pErrorCode); |
+} |
+ |
+U_DRAFT const UChar * U_EXPORT2 |
+udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg, |
+ const UChar *skeleton, int32_t skeletonLength, |
+ int32_t *pLength) { |
+ UnicodeString skeletonString((UBool)(skeletonLength<0), skeleton, skeletonLength); |
+ const UnicodeString &result=((const DateTimePatternGenerator *)dtpg)->getPatternForSkeleton(skeletonString); |
+ if(pLength!=NULL) { |
+ *pLength=result.length(); |
+ } |
+ return result.getBuffer(); |
+} |
+ |
+#endif |
Property changes on: icu46/source/i18n/udatpg.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |