am ace9c148: Merge "Use PrevWordsInfo.getPrevWordCount() in Java side."
* commit 'ace9c1485251ef63f37e5cde4fc5f6d7620f3386': Use PrevWordsInfo.getPrevWordCount() in Java side.main
commit
0f9bf78796
|
@ -358,9 +358,8 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
|
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
|
||||||
return NOT_A_PROBABILITY;
|
return NOT_A_PROBABILITY;
|
||||||
}
|
}
|
||||||
final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
|
final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][];
|
||||||
final boolean[] isBeginningOfSentenceArray =
|
final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()];
|
||||||
new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
|
|
||||||
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
|
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
|
||||||
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
|
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
|
||||||
return getNgramProbabilityNative(mNativeDict, prevWordCodePointArrays,
|
return getNgramProbabilityNative(mNativeDict, prevWordCodePointArrays,
|
||||||
|
@ -455,9 +454,8 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
|
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
|
final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][];
|
||||||
final boolean[] isBeginningOfSentenceArray =
|
final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()];
|
||||||
new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
|
|
||||||
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
|
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
|
||||||
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
|
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
|
||||||
if (!addNgramEntryNative(mNativeDict, prevWordCodePointArrays,
|
if (!addNgramEntryNative(mNativeDict, prevWordCodePointArrays,
|
||||||
|
@ -473,9 +471,8 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
|
if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
|
final int[][] prevWordCodePointArrays = new int[prevWordsInfo.getPrevWordCount()][];
|
||||||
final boolean[] isBeginningOfSentenceArray =
|
final boolean[] isBeginningOfSentenceArray = new boolean[prevWordsInfo.getPrevWordCount()];
|
||||||
new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
|
|
||||||
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
|
prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
|
||||||
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
|
final int[] wordCodePoints = StringUtils.toCodePointArray(word);
|
||||||
if (!removeNgramEntryNative(mNativeDict, prevWordCodePointArrays,
|
if (!removeNgramEntryNative(mNativeDict, prevWordCodePointArrays,
|
||||||
|
|
|
@ -86,33 +86,30 @@ public class PrevWordsInfo {
|
||||||
// For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the
|
// For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the
|
||||||
// WordComposer was reset and before starting a new composing word, but we should never be
|
// WordComposer was reset and before starting a new composing word, but we should never be
|
||||||
// calling getSuggetions* in this situation.
|
// calling getSuggetions* in this situation.
|
||||||
public WordInfo[] mPrevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
|
public final WordInfo[] mPrevWordsInfo;
|
||||||
|
|
||||||
// Construct from the previous word information.
|
// Construct from the previous word information.
|
||||||
public PrevWordsInfo(final WordInfo prevWordInfo) {
|
public PrevWordsInfo(final WordInfo prevWordInfo) {
|
||||||
mPrevWordsInfo[0] = prevWordInfo;
|
mPrevWordsInfo = new WordInfo[] { prevWordInfo };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct from WordInfo array. n-th element represents (n+1)-th previous word's information.
|
// Construct from WordInfo array. n-th element represents (n+1)-th previous word's information.
|
||||||
public PrevWordsInfo(final WordInfo[] prevWordsInfo) {
|
public PrevWordsInfo(final WordInfo[] prevWordsInfo) {
|
||||||
for (int i = 0; i < Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM; i++) {
|
mPrevWordsInfo = prevWordsInfo;
|
||||||
mPrevWordsInfo[i] =
|
|
||||||
(prevWordsInfo.length > i) ? prevWordsInfo[i] : WordInfo.EMPTY_WORD_INFO;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create next prevWordsInfo using current prevWordsInfo.
|
// Create next prevWordsInfo using current prevWordsInfo.
|
||||||
public PrevWordsInfo getNextPrevWordsInfo(final WordInfo wordInfo) {
|
public PrevWordsInfo getNextPrevWordsInfo(final WordInfo wordInfo) {
|
||||||
final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
|
final int nextPrevWordCount = Math.min(Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM,
|
||||||
|
mPrevWordsInfo.length + 1);
|
||||||
|
final WordInfo[] prevWordsInfo = new WordInfo[nextPrevWordCount];
|
||||||
prevWordsInfo[0] = wordInfo;
|
prevWordsInfo[0] = wordInfo;
|
||||||
for (int i = 1; i < prevWordsInfo.length; i++) {
|
System.arraycopy(mPrevWordsInfo, 0, prevWordsInfo, 1, prevWordsInfo.length - 1);
|
||||||
prevWordsInfo[i] = mPrevWordsInfo[i - 1];
|
|
||||||
}
|
|
||||||
return new PrevWordsInfo(prevWordsInfo);
|
return new PrevWordsInfo(prevWordsInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValid() {
|
public boolean isValid() {
|
||||||
return mPrevWordsInfo[0].isValid();
|
return mPrevWordsInfo.length > 0 && mPrevWordsInfo[0].isValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void outputToArray(final int[][] codePointArrays,
|
public void outputToArray(final int[][] codePointArrays,
|
||||||
|
@ -129,6 +126,10 @@ public class PrevWordsInfo {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getPrevWordCount() {
|
||||||
|
return mPrevWordsInfo.length;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Arrays.hashCode(mPrevWordsInfo);
|
return Arrays.hashCode(mPrevWordsInfo);
|
||||||
|
|
Loading…
Reference in New Issue