Lines Matching refs:errorCode
62 const char *&errorReason, UErrorCode &errorCode);
71 const char *& /*errorReason*/, UErrorCode &errorCode) {
72 CollationLoader::loadRules(localeID, collationType, rules, errorCode);
95 RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, UErrorCode &errorCode)
103 internalBuildTailoring(rules, UCOL_DEFAULT, UCOL_DEFAULT, NULL, NULL, errorCode);
107 UErrorCode &errorCode)
115 internalBuildTailoring(rules, strength, UCOL_DEFAULT, NULL, NULL, errorCode);
120 UErrorCode &errorCode)
128 internalBuildTailoring(rules, UCOL_DEFAULT, decompositionMode, NULL, NULL, errorCode);
134 UErrorCode &errorCode)
142 internalBuildTailoring(rules, strength, decompositionMode, NULL, NULL, errorCode);
147 UErrorCode &errorCode)
155 internalBuildTailoring(rules, UCOL_DEFAULT, UCOL_DEFAULT, &parseError, &reason, errorCode);
163 UErrorCode &errorCode) {
164 const CollationTailoring *base = CollationRoot::getRoot(errorCode);
165 if(U_FAILURE(errorCode)) { return; }
167 CollationBuilder builder(base, errorCode);
172 outParseError, errorCode));
173 if(U_FAILURE(errorCode)) {
181 adoptTailoring(t.orphan(), errorCode);
185 setAttribute(UCOL_STRENGTH, (UColAttributeValue)strength, errorCode);
188 setAttribute(UCOL_NORMALIZATION_MODE, decompositionMode, errorCode);
201 CollationBuilder::CollationBuilder(const CollationTailoring *b, UErrorCode &errorCode)
202 : nfd(*Normalizer2::getNFDInstance(errorCode)),
203 fcd(*Normalizer2Factory::getFCDInstance(errorCode)),
204 nfcImpl(*Normalizer2Factory::getNFCImpl(errorCode)),
209 dataBuilder(new CollationDataBuilder(errorCode)), fastLatinEnabled(TRUE),
212 rootPrimaryIndexes(errorCode), nodes(errorCode) {
213 nfcImpl.ensureCanonIterData(errorCode);
214 if(U_FAILURE(errorCode)) {
219 errorCode = U_MEMORY_ALLOCATION_ERROR;
222 dataBuilder->initForTailoring(baseData, errorCode);
223 if(U_FAILURE(errorCode)) {
237 UErrorCode &errorCode) {
238 if(U_FAILURE(errorCode)) { return NULL; }
240 errorCode = U_MISSING_RESOURCE_ERROR;
246 errorCode = U_MEMORY_ALLOCATION_ERROR;
249 CollationRuleParser parser(baseData, errorCode);
250 if(U_FAILURE(errorCode)) { return NULL; }
260 parser.parse(ruleString, ownedSettings, outParseError, errorCode);
262 if(U_FAILURE(errorCode)) { return NULL; }
264 makeTailoredCEs(errorCode);
265 closeOverComposites(errorCode);
266 finalizeCEs(errorCode);
273 dataBuilder->optimize(optimizeSet, errorCode);
274 tailoring->ensureOwnedData(errorCode);
275 if(U_FAILURE(errorCode)) { return NULL; }
277 dataBuilder->build(*tailoring->ownedData, errorCode);
283 if(U_FAILURE(errorCode)) { return NULL; }
295 const char *&parserErrorReason, UErrorCode &errorCode) {
296 if(U_FAILURE(errorCode)) { return; }
299 ces[0] = getSpecialResetPosition(str, parserErrorReason, errorCode);
301 if(U_FAILURE(errorCode)) { return; }
305 UnicodeString nfdString = nfd.normalize(str, errorCode);
306 if(U_FAILURE(errorCode)) {
312 errorCode = U_ILLEGAL_ARGUMENT_ERROR;
321 int32_t index = findOrInsertNodeForCEs(strength, parserErrorReason, errorCode);
322 if(U_FAILURE(errorCode)) { return; }
340 errorCode = U_UNSUPPORTED_ERROR;
346 errorCode = U_UNSUPPORTED_ERROR;
352 errorCode = U_UNSUPPORTED_ERROR;
357 index = findOrInsertNodeForPrimary(p, errorCode);
379 errorCode = U_UNSUPPORTED_ERROR;
420 index = insertNodeBetween(previousIndex, index, node, errorCode);
425 index = findOrInsertWeakNode(index, weight16, strength, errorCode);
431 if(U_FAILURE(errorCode)) {
483 const char *&parserErrorReason, UErrorCode &errorCode) {
499 int32_t index = findOrInsertNodeForRootCE(0, UCOL_TERTIARY, errorCode);
500 if(U_FAILURE(errorCode)) { return 0; }
518 int32_t index = findOrInsertNodeForRootCE(0, UCOL_SECONDARY, errorCode);
519 if(U_FAILURE(errorCode)) { return 0; }
564 ce = baseData->getSingleCE(0x4e00, errorCode);
568 errorCode = U_UNSUPPORTED_ERROR;
576 errorCode = U_ILLEGAL_ARGUMENT_ERROR;
584 int32_t index = findOrInsertNodeForRootCE(ce, strength, errorCode);
585 if(U_FAILURE(errorCode)) { return 0; }
608 index = findOrInsertNodeForRootCE(ce, UCOL_PRIMARY, errorCode);
609 if(U_FAILURE(errorCode)) { return 0; }
650 const char *&parserErrorReason, UErrorCode &errorCode) {
651 if(U_FAILURE(errorCode)) { return; }
654 nfd.normalize(prefix, nfdPrefix, errorCode);
655 if(U_FAILURE(errorCode)) {
660 UnicodeString nfdString = nfd.normalize(str, errorCode);
661 if(U_FAILURE(errorCode)) {
675 errorCode = U_UNSUPPORTED_ERROR;
685 errorCode = U_UNSUPPORTED_ERROR;
699 int32_t index = findOrInsertNodeForCEs(strength, parserErrorReason, errorCode);
704 errorCode = U_UNSUPPORTED_ERROR;
711 errorCode = U_UNSUPPORTED_ERROR;
716 index = insertTailoredNodeAfter(index, strength, errorCode);
717 if(U_FAILURE(errorCode)) {
728 setCaseBits(nfdString, parserErrorReason, errorCode);
729 if(U_FAILURE(errorCode)) { return; }
733 UnicodeString nfdExtension = nfd.normalize(extension, errorCode);
734 if(U_FAILURE(errorCode)) {
740 errorCode = U_ILLEGAL_ARGUMENT_ERROR;
748 !ignorePrefix(prefix, errorCode) && !ignoreString(str, errorCode)) {
752 ce32 = addIfDifferent(prefix, str, ces, cesLength, ce32, errorCode);
754 addWithClosure(nfdPrefix, nfdString, ces, cesLength, ce32, errorCode);
755 if(U_FAILURE(errorCode)) {
764 UErrorCode &errorCode) {
765 errorCode)) { return 0; }
790 errorCode = U_UNSUPPORTED_ERROR;
794 return findOrInsertNodeForRootCE(ce, strength, errorCode);
798 CollationBuilder::findOrInsertNodeForRootCE(int64_t ce, int32_t strength, UErrorCode &errorCode) {
799 if(U_FAILURE(errorCode)) { return 0; }
806 int32_t index = findOrInsertNodeForPrimary((uint32_t)(ce >> 32), errorCode);
809 index = findOrInsertWeakNode(index, lower32 >> 16, UCOL_SECONDARY, errorCode);
812 UCOL_TERTIARY, errorCode);
856 CollationBuilder::findOrInsertNodeForPrimary(uint32_t p, UErrorCode &errorCode) {
857 if(U_FAILURE(errorCode)) { return 0; }
866 nodes.addElement(nodeFromWeight32(p), errorCode);
867 rootPrimaryIndexes.insertElementAt(index, ~rootIndex, errorCode);
873 CollationBuilder::findOrInsertWeakNode(int32_t index, uint32_t weight16, int32_t level, UErrorCode &errorCode) {
874 if(U_FAILURE(errorCode)) { return 0; }
902 index = insertNodeBetween(index, nextIndex, node, errorCode);
904 insertNodeBetween(index, nextIndex, commonNode, errorCode);
936 return insertNodeBetween(index, nextIndex, node, errorCode);
940 CollationBuilder::insertTailoredNodeAfter(int32_t index, int32_t strength, UErrorCode &errorCode) {
941 if(U_FAILURE(errorCode)) { return 0; }
960 return insertNodeBetween(index, nextIndex, node, errorCode);
965 UErrorCode &errorCode) {
966 if(U_FAILURE(errorCode)) { return 0; }
973 nodes.addElement(node, errorCode);
974 if(U_FAILURE(errorCode)) { return 0; }
1015 const char *&parserErrorReason, UErrorCode &errorCode) {
1016 if(U_FAILURE(errorCode)) { return; }
1030 int32_t baseCEsLength = baseCEs.fetchCEs(errorCode) - 1;
1031 if(U_FAILURE(errorCode)) {
1085 UErrorCode &errorCode) {
1086 if(U_FAILURE(errorCode)) { return; }
1087 dataBuilder->suppressContractions(set, errorCode);
1088 if(U_FAILURE(errorCode)) {
1095 UErrorCode &errorCode) {
1096 if(U_FAILURE(errorCode)) { return; }
1103 UErrorCode &errorCode) {
1105 ce32 = addIfDifferent(nfdPrefix, nfdString, newCEs, newCEsLength, ce32, errorCode);
1106 ce32 = addOnlyClosure(nfdPrefix, nfdString, newCEs, newCEsLength, ce32, errorCode);
1107 addTailComposites(nfdPrefix, nfdString, errorCode);
1114 UErrorCode &errorCode) {
1115 if(U_FAILURE(errorCode)) { return ce32; }
1119 CanonicalIterator stringIter(nfdString, errorCode);
1120 if(U_FAILURE(errorCode)) { return ce32; }
1125 if(ignoreString(str, errorCode) || str == nfdString) { continue; }
1126 ce32 = addIfDifferent(prefix, str, newCEs, newCEsLength, ce32, errorCode);
1127 if(U_FAILURE(errorCode)) { return ce32; }
1130 CanonicalIterator prefixIter(nfdPrefix, errorCode);
1131 CanonicalIterator stringIter(nfdString, errorCode);
1132 if(U_FAILURE(errorCode)) { return ce32; }
1136 if(ignorePrefix(prefix, errorCode)) { continue; }
1141 if(ignoreString(str, errorCode) || (samePrefix && str == nfdString)) { continue; }
1142 ce32 = addIfDifferent(prefix, str, newCEs, newCEsLength, ce32, errorCode);
1143 if(U_FAILURE(errorCode)) { return ce32; }
1153 UErrorCode &errorCode) {
1154 if(U_FAILURE(errorCode)) { return; }
1183 newNFDString, newString, errorCode)) {
1207 newCEs, newCEsLength, Collation::UNASSIGNED_CE32, errorCode);
1210 addOnlyClosure(nfdPrefix, newNFDString, newCEs, newCEsLength, ce32, errorCode);
1220 UErrorCode &errorCode) const {
1221 if(U_FAILURE(errorCode)) { return FALSE; }
1297 U_ASSERT(nfd.isNormalized(newNFDString, errorCode));
1298 U_ASSERT(fcd.isNormalized(newString, errorCode));
1299 U_ASSERT(nfd.normalize(newString, errorCode) == newNFDString); // canonically equivalent
1304 CollationBuilder::ignorePrefix(const UnicodeString &s, UErrorCode &errorCode) const {
1306 return !isFCD(s, errorCode);
1310 CollationBuilder::ignoreString(const UnicodeString &s, UErrorCode &errorCode) const {
1313 return !isFCD(s, errorCode) || Hangul::isHangul(s.charAt(0));
1317 CollationBuilder::isFCD(const UnicodeString &s, UErrorCode &errorCode) const {
1318 return U_SUCCESS(errorCode) && fcd.isNormalized(s, errorCode);
1322 CollationBuilder::closeOverComposites(UErrorCode &errorCode) {
1323 UnicodeSet composites(UNICODE_STRING_SIMPLE("[:NFD_QC=N:]"), errorCode); // Java: static final
1324 if(U_FAILURE(errorCode)) { return; }
1341 addIfDifferent(prefix, composite, ces, cesLength, Collation::UNASSIGNED_CE32, errorCode);
1348 UErrorCode &errorCode) {
1349 if(U_FAILURE(errorCode)) { return ce32; }
1354 ce32 = dataBuilder->encodeCEs(newCEs, newCEsLength, errorCode);
1356 dataBuilder->addCE32(prefix, str, ce32, errorCode);
1387 CollationBuilder::makeTailoredCEs(UErrorCode &errorCode) {
1388 if(U_FAILURE(errorCode)) { return; }
1422 errorCode = U_BUFFER_OVERFLOW_ERROR;
1455 errorCode = U_BUFFER_OVERFLOW_ERROR;
1502 errorCode = U_BUFFER_OVERFLOW_ERROR;
1536 errorCode = U_BUFFER_OVERFLOW_ERROR; // TODO: introduce a more specific UErrorCode?
1610 CollationBuilder::finalizeCEs(UErrorCode &errorCode) {
1611 if(U_FAILURE(errorCode)) { return; }
1612 LocalPointer<CollationDataBuilder> newBuilder(new CollationDataBuilder(errorCode), errorCode);
1613 if(U_FAILURE(errorCode)) {
1616 newBuilder->initForTailoring(baseData, errorCode);
1618 newBuilder->copyFrom(*dataBuilder, finalizer, errorCode);
1619 if(U_FAILURE(errorCode)) { return; }