From 7b9b09509083af20019828972f9558336ec7da7a Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Wed, 15 Jan 2014 16:04:05 +0900
Subject: [PATCH] Move LanguageModelParams class to utility package

This change must be checked in together with Ic82d951237.

Change-Id: I2ab451330f85a0147563b805682f26edecb71a29
---
 .../inputmethod/latin/BinaryDictionary.java   | 46 +------------
 .../latin/ExpandableBinaryDictionary.java     |  2 +-
 ...ecayingExpandableBinaryDictionaryBase.java |  2 +-
 ...ersonalizationDictionaryUpdateSession.java |  2 +-
 .../latin/utils/LanguageModelParam.java       | 65 +++++++++++++++++++
 .../latin/BinaryDictionaryTests.java          |  2 +-
 6 files changed, 70 insertions(+), 49 deletions(-)
 create mode 100644 java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java

diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 708f75a06b..2c7998688b 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -25,6 +25,7 @@ import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 import com.android.inputmethod.latin.settings.NativeSuggestOptions;
 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;
 
@@ -364,51 +365,6 @@ public final class BinaryDictionary extends Dictionary {
         removeBigramWordsNative(mNativeDict, codePoints0, codePoints1);
     }
 
-    public static class LanguageModelParam {
-        public final String mTargetWord;
-        public final int[] mWord0;
-        public final int[] mWord1;
-        // TODO: this needs to be a list of shortcuts
-        public final int[] mShortcutTarget;
-        public final int mUnigramProbability;
-        public final int mBigramProbability;
-        public final int mShortcutProbability;
-        public final boolean mIsNotAWord;
-        public final boolean mIsBlacklisted;
-        public final int mTimestamp;
-
-        // Constructor for unigram. TODO: support shortcuts
-        public LanguageModelParam(final String word, final int unigramProbability,
-                final int timestamp) {
-            mTargetWord = word;
-            mWord0 = null;
-            mWord1 = StringUtils.toCodePointArray(word);
-            mShortcutTarget = null;
-            mUnigramProbability = unigramProbability;
-            mBigramProbability = NOT_A_PROBABILITY;
-            mShortcutProbability = NOT_A_PROBABILITY;
-            mIsNotAWord = false;
-            mIsBlacklisted = false;
-            mTimestamp = timestamp;
-        }
-
-        // Constructor for unigram and bigram.
-        public LanguageModelParam(final String word0, final String word1,
-                final int unigramProbability, final int bigramProbability,
-                final int timestamp) {
-            mTargetWord = word1;
-            mWord0 = StringUtils.toCodePointArray(word0);
-            mWord1 = StringUtils.toCodePointArray(word1);
-            mShortcutTarget = null;
-            mUnigramProbability = unigramProbability;
-            mBigramProbability = bigramProbability;
-            mShortcutProbability = NOT_A_PROBABILITY;
-            mIsNotAWord = false;
-            mIsBlacklisted = false;
-            mTimestamp = timestamp;
-        }
-    }
-
     public void addMultipleDictionaryEntries(final LanguageModelParam[] languageModelParams) {
         if (!isValidDictionary()) return;
         int processedParamCount = 0;
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index cb5b0e3ef3..ecef20efc7 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -21,12 +21,12 @@ import android.util.Log;
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.keyboard.ProximityInfo;
-import com.android.inputmethod.latin.BinaryDictionary.LanguageModelParam;
 import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 import com.android.inputmethod.latin.utils.AsyncResultHolder;
 import com.android.inputmethod.latin.utils.CollectionUtils;
 import com.android.inputmethod.latin.utils.FileUtils;
+import com.android.inputmethod.latin.utils.LanguageModelParam;
 import com.android.inputmethod.latin.utils.PrioritizedSerialExecutor;
 
 import java.io.File;
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
index 701c290235..cc57d13dca 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
@@ -20,13 +20,13 @@ import android.content.Context;
 import android.util.Log;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.BinaryDictionary.LanguageModelParam;
 import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.Dictionary;
 import com.android.inputmethod.latin.ExpandableBinaryDictionary;
 import com.android.inputmethod.latin.makedict.DictDecoder;
 import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
+import com.android.inputmethod.latin.utils.LanguageModelParam;
 import com.android.inputmethod.latin.utils.UserHistoryDictIOUtils;
 import com.android.inputmethod.latin.utils.UserHistoryDictIOUtils.OnAddWordListener;
 
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java
index 3eb8f35a9e..bc11db2899 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java
@@ -18,8 +18,8 @@ package com.android.inputmethod.latin.personalization;
 
 import android.content.Context;
 
-import com.android.inputmethod.latin.BinaryDictionary.LanguageModelParam;
 import com.android.inputmethod.latin.ExpandableBinaryDictionary;
+import com.android.inputmethod.latin.utils.LanguageModelParam;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
new file mode 100644
index 0000000000..847b7bb91b
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import com.android.inputmethod.latin.Dictionary;
+
+public class LanguageModelParam {
+    public final String mTargetWord;
+    public final int[] mWord0;
+    public final int[] mWord1;
+    // TODO: this needs to be a list of shortcuts
+    public final int[] mShortcutTarget;
+    public final int mUnigramProbability;
+    public final int mBigramProbability;
+    public final int mShortcutProbability;
+    public final boolean mIsNotAWord;
+    public final boolean mIsBlacklisted;
+    // Time stamp in seconds.
+    public final int mTimestamp;
+
+    // Constructor for unigram. TODO: support shortcuts
+    public LanguageModelParam(final String word, final int unigramProbability,
+            final int timestamp) {
+        mTargetWord = word;
+        mWord0 = null;
+        mWord1 = StringUtils.toCodePointArray(word);
+        mShortcutTarget = null;
+        mUnigramProbability = unigramProbability;
+        mBigramProbability = Dictionary.NOT_A_PROBABILITY;
+        mShortcutProbability = Dictionary.NOT_A_PROBABILITY;
+        mIsNotAWord = false;
+        mIsBlacklisted = false;
+        mTimestamp = timestamp;
+    }
+
+    // Constructor for unigram and bigram.
+    public LanguageModelParam(final String word0, final String word1,
+            final int unigramProbability, final int bigramProbability,
+            final int timestamp) {
+        mTargetWord = word1;
+        mWord0 = StringUtils.toCodePointArray(word0);
+        mWord1 = StringUtils.toCodePointArray(word1);
+        mShortcutTarget = null;
+        mUnigramProbability = unigramProbability;
+        mBigramProbability = bigramProbability;
+        mShortcutProbability = Dictionary.NOT_A_PROBABILITY;
+        mIsNotAWord = false;
+        mIsBlacklisted = false;
+        mTimestamp = timestamp;
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index 65c70a6dba..d0059e37b3 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -21,11 +21,11 @@ import android.test.suitebuilder.annotation.LargeTest;
 import android.text.TextUtils;
 import android.util.Pair;
 
-import com.android.inputmethod.latin.BinaryDictionary.LanguageModelParam;
 import com.android.inputmethod.latin.makedict.CodePointUtils;
 import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.makedict.FusionDictionary.WeightedString;
 import com.android.inputmethod.latin.utils.FileUtils;
+import com.android.inputmethod.latin.utils.LanguageModelParam;
 import com.android.inputmethod.latin.utils.UnigramProperty;
 
 import java.io.File;
-- 
GitLab