Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 748f32fe authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Rename UnigramProperty to WordProperty."

parents e9085da8 080a35e9
Loading
Loading
Loading
Loading
+25 −25
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.JniUtils;
import com.android.inputmethod.latin.utils.LanguageModelParam;
import com.android.inputmethod.latin.utils.StringUtils;
import com.android.inputmethod.latin.utils.UnigramProperty;
import com.android.inputmethod.latin.utils.WordProperty;

import java.io.File;
import java.util.ArrayList;
@@ -61,18 +61,18 @@ public final class BinaryDictionary extends Dictionary {

    public static final int NOT_A_VALID_TIMESTAMP = -1;

    // Format to get unigram flags from native side via getUnigramPropertyNative().
    private static final int FORMAT_UNIGRAM_PROPERTY_OUTPUT_FLAG_COUNT = 4;
    private static final int FORMAT_UNIGRAM_PROPERTY_IS_NOT_A_WORD_INDEX = 0;
    private static final int FORMAT_UNIGRAM_PROPERTY_IS_BLACKLISTED_INDEX = 1;
    private static final int FORMAT_UNIGRAM_PROPERTY_HAS_BIGRAMS_INDEX = 2;
    private static final int FORMAT_UNIGRAM_PROPERTY_HAS_SHORTCUTS_INDEX = 3;
    // Format to get unigram flags from native side via getWordPropertyNative().
    private static final int FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT = 4;
    private static final int FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX = 0;
    private static final int FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX = 1;
    private static final int FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX = 2;
    private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3;

    // Format to get unigram historical info from native side via getUnigramPropertyNative().
    private static final int FORMAT_UNIGRAM_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT = 3;
    private static final int FORMAT_UNIGRAM_PROPERTY_TIMESTAMP_INDEX = 0;
    private static final int FORMAT_UNIGRAM_PROPERTY_LEVEL_INDEX = 1;
    private static final int FORMAT_UNIGRAM_PROPERTY_COUNT_INDEX = 2;
    // Format to get unigram historical info from native side via getWordPropertyNative().
    private static final int FORMAT_WORD_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT = 3;
    private static final int FORMAT_WORD_PROPERTY_TIMESTAMP_INDEX = 0;
    private static final int FORMAT_WORD_PROPERTY_LEVEL_INDEX = 1;
    private static final int FORMAT_WORD_PROPERTY_COUNT_INDEX = 2;

    private long mNativeDict;
    private final Locale mLocale;
@@ -143,7 +143,7 @@ public final class BinaryDictionary extends Dictionary {
    private static native int getFormatVersionNative(long dict);
    private static native int getProbabilityNative(long dict, int[] word);
    private static native int getBigramProbabilityNative(long dict, int[] word0, int[] word1);
    private static native void getUnigramPropertyNative(long dict, int[] word,
    private static native void getWordPropertyNative(long dict, int[] word,
            int[] outCodePoints, boolean[] outFlags, int[] outProbability,
            int[] outHistoricalInfo, ArrayList<int[]> outShortcutTargets,
            ArrayList<Integer> outShortcutProbabilities);
@@ -306,28 +306,28 @@ public final class BinaryDictionary extends Dictionary {
    }

    @UsedForTesting
    public UnigramProperty getUnigramProperty(final String word) {
    public WordProperty getWordProperty(final String word) {
        if (TextUtils.isEmpty(word)) {
            return null;
        }
        final int[] codePoints = StringUtils.toCodePointArray(word);
        final int[] outCodePoints = new int[MAX_WORD_LENGTH];
        final boolean[] outFlags = new boolean[FORMAT_UNIGRAM_PROPERTY_OUTPUT_FLAG_COUNT];
        final boolean[] outFlags = new boolean[FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT];
        final int[] outProbability = new int[1];
        final int[] outHistoricalInfo =
                new int[FORMAT_UNIGRAM_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT];
                new int[FORMAT_WORD_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT];
        final ArrayList<int[]> outShortcutTargets = CollectionUtils.newArrayList();
        final ArrayList<Integer> outShortcutProbabilities = CollectionUtils.newArrayList();
        getUnigramPropertyNative(mNativeDict, codePoints, outCodePoints, outFlags, outProbability,
        getWordPropertyNative(mNativeDict, codePoints, outCodePoints, outFlags, outProbability,
                outHistoricalInfo, outShortcutTargets, outShortcutProbabilities);
        return new UnigramProperty(codePoints,
                outFlags[FORMAT_UNIGRAM_PROPERTY_IS_NOT_A_WORD_INDEX],
                outFlags[FORMAT_UNIGRAM_PROPERTY_IS_BLACKLISTED_INDEX],
                outFlags[FORMAT_UNIGRAM_PROPERTY_HAS_BIGRAMS_INDEX],
                outFlags[FORMAT_UNIGRAM_PROPERTY_HAS_SHORTCUTS_INDEX], outProbability[0],
                outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_TIMESTAMP_INDEX],
                outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_LEVEL_INDEX],
                outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_COUNT_INDEX],
        return new WordProperty(codePoints,
                outFlags[FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX],
                outFlags[FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX],
                outFlags[FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX],
                outFlags[FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX], outProbability[0],
                outHistoricalInfo[FORMAT_WORD_PROPERTY_TIMESTAMP_INDEX],
                outHistoricalInfo[FORMAT_WORD_PROPERTY_LEVEL_INDEX],
                outHistoricalInfo[FORMAT_WORD_PROPERTY_COUNT_INDEX],
                outShortcutTargets, outShortcutProbabilities);
    }

+3 −3
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ import java.util.ArrayList;
// This has information that belong to a unigram. This class has some detailed attributes such as
// historical information but they have to be checked only for testing purpose.
@UsedForTesting
public class UnigramProperty {
public class WordProperty {
    public final String mCodePoints;
    public final boolean mIsNotAWord;
    public final boolean mIsBlacklisted;
@@ -50,8 +50,8 @@ public class UnigramProperty {
        return codePoints.length;
    }

    // This represents invalid unigram when the probability is BinaryDictionary.NOT_A_PROBABILITY.
    public UnigramProperty(final int[] codePoints, final boolean isNotAWord,
    // This represents invalid word when the probability is BinaryDictionary.NOT_A_PROBABILITY.
    public WordProperty(final int[] codePoints, final boolean isNotAWord,
            final boolean isBlacklisted, final boolean hasBigram,
            final boolean hasShortcuts, final int probability, final int timestamp,
            final int level, final int count, final ArrayList<int[]> shortcutTargets,
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ LATIN_IME_CORE_SRC_FILES := \
        error_type_utils.cpp \
        multi_bigram_map.cpp \
        suggestions_output_utils.cpp \
        unigram_property.cpp) \
        word_property.cpp) \
    $(addprefix suggest/core/layout/, \
        additional_proximity_chars.cpp \
        proximity_info.cpp \
+6 −7
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include "jni.h"
#include "jni_common.h"
#include "suggest/core/dictionary/dictionary.h"
#include "suggest/core/dictionary/unigram_property.h"
#include "suggest/core/dictionary/word_property.h"
#include "suggest/core/suggest_options.h"
#include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
@@ -260,7 +260,7 @@ static jint latinime_BinaryDictionary_getBigramProbability(JNIEnv *env, jclass c
            word1Length);
}

static void latinime_BinaryDictionary_getUnigramProperty(JNIEnv *env, jclass clazz,
static void latinime_BinaryDictionary_getWordProperty(JNIEnv *env, jclass clazz,
        jlong dict, jintArray word, jintArray outCodePoints, jbooleanArray outFlags,
        jintArray outProbability, jintArray outHistoricalInfo, jobject outShortcutTargets,
        jobject outShortcutProbabilities) {
@@ -269,9 +269,8 @@ static void latinime_BinaryDictionary_getUnigramProperty(JNIEnv *env, jclass cla
    const jsize wordLength = env->GetArrayLength(word);
    int wordCodePoints[wordLength];
    env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints);
    const UnigramProperty unigramProperty = dictionary->getUnigramProperty(
            wordCodePoints, wordLength);
    unigramProperty.outputProperties(env, outCodePoints, outFlags, outProbability,
    const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints, wordLength);
    wordProperty.outputProperties(env, outCodePoints, outFlags, outProbability,
            outHistoricalInfo, outShortcutTargets, outShortcutProbabilities);
}

@@ -521,9 +520,9 @@ static const JNINativeMethod sMethods[] = {
        reinterpret_cast<void *>(latinime_BinaryDictionary_getBigramProbability)
    },
    {
        const_cast<char *>("getUnigramPropertyNative"),
        const_cast<char *>("getWordPropertyNative"),
        const_cast<char *>("(J[I[I[Z[I[ILjava/util/ArrayList;Ljava/util/ArrayList;)V"),
        reinterpret_cast<void *>(latinime_BinaryDictionary_getUnigramProperty)
        reinterpret_cast<void *>(latinime_BinaryDictionary_getWordProperty)
    },
    {
        const_cast<char *>("calcNormalizedScoreNative"),
+2 −2
Original line number Diff line number Diff line
@@ -143,10 +143,10 @@ void Dictionary::getProperty(const char *const query, const int queryLength, cha
            maxResultLength);
}

const UnigramProperty Dictionary::getUnigramProperty(const int *const codePoints,
const WordProperty Dictionary::getWordProperty(const int *const codePoints,
        const int codePointCount) {
    TimeKeeper::setCurrentTime();
    return mDictionaryStructureWithBufferPolicy.get()->getUnigramProperty(
    return mDictionaryStructureWithBufferPolicy.get()->getWordProperty(
            codePoints, codePointCount);
}

Loading