2014-05-19 04:55:40 +00:00
|
|
|
/*
|
|
|
|
* 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;
|
|
|
|
|
2014-05-23 14:19:33 +00:00
|
|
|
/**
|
|
|
|
* Class to represent information of previous words. This class is used to add n-gram entries
|
|
|
|
* into binary dictionaries, to get predictions, and to get suggestions.
|
|
|
|
*/
|
2014-05-21 06:40:08 +00:00
|
|
|
// TODO: Support multiple previous words for n-gram.
|
2014-05-19 04:55:40 +00:00
|
|
|
public class PrevWordsInfo {
|
2014-05-23 14:19:33 +00:00
|
|
|
public static final PrevWordsInfo EMPTY_PREV_WORDS_INFO = new PrevWordsInfo(null);
|
2014-05-23 10:58:58 +00:00
|
|
|
public static final PrevWordsInfo BEGINNING_OF_SENTENCE = new PrevWordsInfo();
|
|
|
|
|
2014-05-23 14:19:33 +00:00
|
|
|
// The word immediately before the considered word. null means we don't have any context
|
|
|
|
// including the "beginning of sentence context" - we just don't know what to predict.
|
|
|
|
// An example of that is after a comma.
|
|
|
|
// For simplicity of implementation, this may also be null transiently after the WordComposer
|
|
|
|
// was reset and before starting a new composing word, but we should never be calling
|
|
|
|
// getSuggetions* in this situation.
|
|
|
|
// This is an empty string when mIsBeginningOfSentence is true.
|
2014-05-19 04:55:40 +00:00
|
|
|
public final String mPrevWord;
|
|
|
|
|
2014-05-21 06:40:08 +00:00
|
|
|
// TODO: Have sentence separator.
|
2014-05-23 14:19:33 +00:00
|
|
|
// Whether the current context is beginning of sentence or not. This is true when composing at
|
|
|
|
// the beginning of an input field or composing a word after a sentence separator.
|
2014-05-21 06:40:08 +00:00
|
|
|
public final boolean mIsBeginningOfSentence;
|
|
|
|
|
|
|
|
// Beginning of sentence.
|
|
|
|
public PrevWordsInfo() {
|
2014-05-23 10:58:58 +00:00
|
|
|
mPrevWord = "";
|
2014-05-21 06:40:08 +00:00
|
|
|
mIsBeginningOfSentence = true;
|
|
|
|
}
|
|
|
|
|
2014-05-19 04:55:40 +00:00
|
|
|
public PrevWordsInfo(final String prevWord) {
|
|
|
|
mPrevWord = prevWord;
|
2014-05-21 06:40:08 +00:00
|
|
|
mIsBeginningOfSentence = false;
|
2014-05-19 04:55:40 +00:00
|
|
|
}
|
2014-05-23 10:58:58 +00:00
|
|
|
|
|
|
|
public boolean isValid() {
|
|
|
|
return mPrevWord != null;
|
|
|
|
}
|
2014-05-27 08:28:29 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "PrevWord: " + mPrevWord + ", isBeginningOfSentence: "
|
|
|
|
+ mIsBeginningOfSentence + ".";
|
|
|
|
}
|
2014-05-19 04:55:40 +00:00
|
|
|
}
|