static void NativeDecimalFormat_applyPatternImpl(JNIEnv* env, jclass, jlong addr, jboolean localized, jstring pattern0) { ScopedJavaUnicodeString pattern(env, pattern0); if (!pattern.valid()) { return; } DecimalFormat* fmt = toDecimalFormat(addr); UErrorCode status = U_ZERO_ERROR; const char* function; if (localized) { function = "DecimalFormat::applyLocalizedPattern"; fmt->applyLocalizedPattern(pattern.unicodeString(), status); } else { function = "DecimalFormat::applyPattern"; fmt->applyPattern(pattern.unicodeString(), status); } maybeThrowIcuException(env, function, status); }
//static void NativeDecimalFormat_applyPatternImpl(JNIEnv* env, jclass, jint addr, jboolean localized, jstring pattern0) { JNIEXPORT void JNICALL Java_com_ibm_icu4jni_text_NativeDecimalFormat_applyPatternImpl(JNIEnv* env, jclass, jint addr, jboolean localized, jstring pattern0) { if (pattern0 == NULL) { jniThrowNullPointerException(env, NULL); return; } ScopedJavaUnicodeString pattern(env, pattern0); DecimalFormat* fmt = toDecimalFormat(addr); UErrorCode status = U_ZERO_ERROR; if (localized) { fmt->applyLocalizedPattern(pattern.unicodeString(), status); } else { fmt->applyPattern(pattern.unicodeString(), status); } icu4jni_error(env, status); }
U_CAPI void U_EXPORT2 unum_applyPattern( UNumberFormat *fmt, UBool localized, const UChar *pattern, int32_t patternLength, UParseError *parseError, UErrorCode* status) { UErrorCode tStatus = U_ZERO_ERROR; UParseError tParseError; if(parseError == NULL){ parseError = &tParseError; } if(status==NULL){ status = &tStatus; } int32_t len = (patternLength == -1 ? u_strlen(pattern) : patternLength); const UnicodeString pat((UChar*)pattern, len, len); // Verify if the object passed is a DecimalFormat object NumberFormat* nf = reinterpret_cast<NumberFormat*>(fmt); DecimalFormat* df = dynamic_cast<DecimalFormat*>(nf); if (df != NULL) { if(localized) { df->applyLocalizedPattern(pat,*parseError, *status); } else { df->applyPattern(pat,*parseError, *status); } } else { *status = U_UNSUPPORTED_ERROR; return; } }