String ImmutableIndex::GetBucketLabel(Int64 peer, Int32 index) { NATIVE(AlphabeticIndex::ImmutableIndex)* ii = immutableIndexFromPeer(peer); // TODO: There is a problem here. Waiting for new .so files. #if 0 // for compiling const NATIVE(AlphabeticIndex::Bucket)* bucket = ii->getBucket(index); if(NULL == bucket) { return String(NULL); } // Return "" for the underflow/inflow/overflow buckets. if (bucket->getLabelType() != U_ALPHAINDEX_NORMAL) { return String(""); } const UnicodeString& label(bucket->getLabel()); String s; ElStringByteSink sink(&s); label.toUTF8(sink); return s; #else assert(0); return String(NULL); #endif }
Int32 ImmutableIndex::GetBucketCount(Int64 peer) { NATIVE(AlphabeticIndex::ImmutableIndex)* ii = immutableIndexFromPeer(peer); // TODO: There is a problem here. Waiting for new .so files. #if 0 // for compiling return ii->getBucketCount(); #else assert(0); return 0; #endif }
static jint ImmutableIndex_getBucketIndex(JNIEnv* env, jclass, jlong peer, jstring javaString) { AlphabeticIndex::ImmutableIndex* ii = immutableIndexFromPeer(peer); ScopedJavaUnicodeString string(env, javaString); if (!string.valid()) { return -1; } UErrorCode status = U_ZERO_ERROR; jint result = ii->getBucketIndex(string.unicodeString(), status); if (maybeThrowIcuException(env, "AlphabeticIndex::ImmutableIndex::getBucketIndex", status)) { return -1; } return result; }
static jstring ImmutableIndex_getBucketLabel(JNIEnv* env, jclass, jlong peer, jint index) { AlphabeticIndex::ImmutableIndex* ii = immutableIndexFromPeer(peer); const AlphabeticIndex::Bucket* bucket = ii->getBucket(index); if (bucket == NULL) { jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "Invalid index: %d", index); return NULL; } // Return "" for the underflow/inflow/overflow buckets. if (bucket->getLabelType() != U_ALPHAINDEX_NORMAL) { return env->NewStringUTF(""); } const UnicodeString& label(bucket->getLabel()); return env->NewString(label.getBuffer(), label.length()); }
Int32 ImmutableIndex::GetBucketIndex(Int64 peer, const String& s) { NATIVE(AlphabeticIndex::ImmutableIndex)* ii = immutableIndexFromPeer(peer); if(s.IsNull()) return -1; UErrorCode status = U_ZERO_ERROR; // TODO: There is a problem here. Waiting for new .so files. #if 0 // for compiling Int32 result = ii->getBucketIndex(UnicodeString::fromUTF8(s.string()), status); if(!U_SUCCESS(status)) return -1; return result; #else assert(0); return 0; #endif }
static jint ImmutableIndex_getBucketCount(JNIEnv*, jclass, jlong peer) { AlphabeticIndex::ImmutableIndex* ii = immutableIndexFromPeer(peer); return ii->getBucketCount(); }