From 96d47fe7457ff1dbea4696a5e0edec2801610d47 Mon Sep 17 00:00:00 2001
From: Keisuke Kuroyanagi <ksk@google.com>
Date: Tue, 29 Jul 2014 11:35:57 +0900
Subject: [PATCH] Change getUnigramProbabilityOfPtNode to
 getProbabilityOfPtNode()

Bug: 14425059
Change-Id: I92403d750d2979408b41554dcd79b0ed31b41161
---
 native/jni/src/suggest/core/dictionary/dictionary.cpp      | 6 +++---
 .../core/policy/dictionary_structure_with_buffer_policy.h  | 3 ++-
 .../structure/backward/v402/ver4_patricia_trie_policy.cpp  | 3 ++-
 .../structure/backward/v402/ver4_patricia_trie_policy.h    | 3 ++-
 .../dictionary/structure/v2/patricia_trie_policy.cpp       | 7 ++++++-
 .../dictionary/structure/v2/patricia_trie_policy.h         | 2 +-
 .../dictionary/structure/v4/ver4_patricia_trie_policy.cpp  | 7 ++++++-
 .../dictionary/structure/v4/ver4_patricia_trie_policy.h    | 2 +-
 8 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp
index fb25f757c..4605409cc 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp
@@ -94,7 +94,7 @@ int Dictionary::getProbability(const int *word, int length) const {
     if (NOT_A_DICT_POS == pos) {
         return NOT_A_PROBABILITY;
     }
-    return getDictionaryStructurePolicy()->getUnigramProbabilityOfPtNode(pos);
+    return getDictionaryStructurePolicy()->getProbabilityOfPtNode(nullptr /* prevWordsInfo */, pos);
 }
 
 int Dictionary::getMaxProbabilityOfExactMatches(const int *word, int length) const {
@@ -116,8 +116,8 @@ int Dictionary::getNgramProbability(const PrevWordsInfo *const prevWordsInfo, co
         if (bigramsIt.getBigramPos() == nextWordPos
                 && bigramsIt.getProbability() != NOT_A_PROBABILITY) {
             return mDictionaryStructureWithBufferPolicy->getProbability(
-                    mDictionaryStructureWithBufferPolicy->getUnigramProbabilityOfPtNode(
-                            nextWordPos), bigramsIt.getProbability());
+                    mDictionaryStructureWithBufferPolicy->getProbabilityOfPtNode(
+                            nullptr /* prevWordsInfo */, nextWordPos), bigramsIt.getProbability());
         }
     }
     return NOT_A_PROBABILITY;
diff --git a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
index a48d64473..7ad20e782 100644
--- a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
+++ b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
@@ -58,7 +58,8 @@ class DictionaryStructureWithBufferPolicy {
     virtual int getProbability(const int unigramProbability,
             const int bigramProbability) const = 0;
 
-    virtual int getUnigramProbabilityOfPtNode(const int nodePos) const = 0;
+    virtual int getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo,
+            const int nodePos) const = 0;
 
     virtual int getShortcutPositionOfPtNode(const int nodePos) const = 0;
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
index f478d9b91..881994552 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
@@ -131,7 +131,8 @@ int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability,
     }
 }
 
-int Ver4PatriciaTriePolicy::getUnigramProbabilityOfPtNode(const int ptNodePos) const {
+int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo,
+        const int ptNodePos) const {
     if (ptNodePos == NOT_A_DICT_POS) {
         return NOT_A_PROBABILITY;
     }
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
index 6d97c7cc8..c80a73af7 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
@@ -90,7 +90,8 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
 
     int getProbability(const int unigramProbability, const int bigramProbability) const;
 
-    int getUnigramProbabilityOfPtNode(const int ptNodePos) const;
+    int getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo,
+            const int ptNodePos) const;
 
     int getShortcutPositionOfPtNode(const int ptNodePos) const;
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
index 91d76040f..ad9cd7429 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
@@ -282,7 +282,12 @@ int PatriciaTriePolicy::getProbability(const int unigramProbability,
     }
 }
 
-int PatriciaTriePolicy::getUnigramProbabilityOfPtNode(const int ptNodePos) const {
+int PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo,
+        const int ptNodePos) const {
+    if (prevWordsInfo) {
+        // TODO: Return probability using prevWordsInfo.
+        return NOT_A_PROBABILITY;
+    }
     if (ptNodePos == NOT_A_DICT_POS) {
         return NOT_A_PROBABILITY;
     }
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
index 7c0b9d3c5..e30c8bfb9 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
@@ -63,7 +63,7 @@ class PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
 
     int getProbability(const int unigramProbability, const int bigramProbability) const;
 
-    int getUnigramProbabilityOfPtNode(const int ptNodePos) const;
+    int getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo, const int ptNodePos) const;
 
     int getShortcutPositionOfPtNode(const int ptNodePos) const;
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
index 0b5764aba..5197a4dd5 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -121,7 +121,12 @@ int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability,
     }
 }
 
-int Ver4PatriciaTriePolicy::getUnigramProbabilityOfPtNode(const int ptNodePos) const {
+int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo,
+        const int ptNodePos) const {
+    if (prevWordsInfo) {
+        // TODO: Return probability using prevWordsInfo.
+        return NOT_A_PROBABILITY;
+    }
     if (ptNodePos == NOT_A_DICT_POS) {
         return NOT_A_PROBABILITY;
     }
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
index 85929b785..b0f16cd01 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
@@ -72,7 +72,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
 
     int getProbability(const int unigramProbability, const int bigramProbability) const;
 
-    int getUnigramProbabilityOfPtNode(const int ptNodePos) const;
+    int getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo, const int ptNodePos) const;
 
     int getShortcutPositionOfPtNode(const int ptNodePos) const;