am 54e84a00: Make a makedict command for dicttool (A3)

* commit '54e84a00fc032ba566cbda41feafa71de77e1c43':
  Make a makedict command for dicttool (A3)
This commit is contained in:
Jean Chalard 2012-08-03 09:28:42 -07:00 committed by Android Git Automerger
commit 900910c02b
8 changed files with 70 additions and 11 deletions

View file

@ -61,8 +61,8 @@ public class FusionDictionary implements Iterable<Word> {
* This represents an "attribute", that is either a bigram or a shortcut.
*/
public static class WeightedString {
final String mWord;
int mFrequency;
public final String mWord;
public int mFrequency;
public WeightedString(String word, int frequency) {
mWord = word;
mFrequency = frequency;

View file

@ -27,10 +27,10 @@ import java.util.Arrays;
* This is chiefly used to iterate a dictionary.
*/
public class Word implements Comparable<Word> {
final String mWord;
final int mFrequency;
final ArrayList<WeightedString> mShortcutTargets;
final ArrayList<WeightedString> mBigrams;
public final String mWord;
public final int mFrequency;
public final ArrayList<WeightedString> mShortcutTargets;
public final ArrayList<WeightedString> mBigrams;
private int mHashCode = 0;

View file

@ -16,9 +16,16 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under,src)
MAKEDICT_CORE_SOURCE_DIRECTORY := ../../java/src/com/android/inputmethod/latin/makedict
LOCAL_MAIN_SRC_FILES := $(call all-java-files-under,$(MAKEDICT_CORE_SOURCE_DIRECTORY))
LOCAL_TOOL_SRC_FILES := $(call all-java-files-under,src)
LOCAL_SRC_FILES := $(LOCAL_TOOL_SRC_FILES) \
$(filter-out $(addprefix %/, $(notdir $(LOCAL_TOOL_SRC_FILES))), $(LOCAL_MAIN_SRC_FILES)) \
$(call all-java-files-under,tests)
LOCAL_JAR_MANIFEST := etc/manifest.txt
LOCAL_MODULE := dicttool
LOCAL_JAVA_LIBRARIES := junit
LOCAL_MODULE_TAGS := eng
include $(BUILD_HOST_JAVA_LIBRARY)

View file

@ -14,7 +14,12 @@
* the License.
*/
package com.android.inputmethod.latin.makedict;
package com.android.inputmethod.latin.dicttool;
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput;
import com.android.inputmethod.latin.makedict.FusionDictionary;
import com.android.inputmethod.latin.makedict.MakedictLog;
import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import java.io.File;
import java.io.FileInputStream;
@ -102,7 +107,11 @@ public class DictionaryMaker {
}
private void displayHelp() {
MakedictLog.i("Usage: makedict "
MakedictLog.i(getHelp());
}
public static String getHelp() {
return "Usage: makedict "
+ "[-s <unigrams.xml> [-b <bigrams.xml>] [-c <shortcuts.xml>] "
+ "| -s <binary input>] [-d <binary output format version 2>] "
+ "[-d1 <binary output format version 1>] [-x <xml output>] [-2]\n"
@ -114,7 +123,7 @@ public class DictionaryMaker {
+ " are supported. All three can be output at the same time, but the same\n"
+ " output format cannot be specified several times. The behavior is\n"
+ " unspecified if the same file is specified for input and output, or for\n"
+ " several outputs.");
+ " several outputs.";
}
public Arguments(String[] argsArray) throws IOException {

View file

@ -35,6 +35,7 @@ public class Dicttool {
sCommands.put("info", Info.class);
sCommands.put("compress", Compress.Compressor.class);
sCommands.put("uncompress", Compress.Uncompressor.class);
sCommands.put("makedict", Makedict.class);
}
private static Command getCommandInstance(final String commandName) {

View file

@ -0,0 +1,40 @@
/**
* Copyright (C) 2012 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.dicttool;
import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
public class Makedict extends Dicttool.Command {
public static final String COMMAND = "makedict";
public Makedict() {
}
public String getHelp() {
return DictionaryMaker.Arguments.getHelp();
}
public void run() throws FileNotFoundException, IOException, ParserConfigurationException,
SAXException, UnsupportedFormatException {
DictionaryMaker.main(mArgs);
}
}

View file

@ -14,11 +14,13 @@
* the License.
*/
package com.android.inputmethod.latin.makedict;
package com.android.inputmethod.latin.dicttool;
import com.android.inputmethod.latin.makedict.FusionDictionary;
import com.android.inputmethod.latin.makedict.FusionDictionary.DictionaryOptions;
import com.android.inputmethod.latin.makedict.FusionDictionary.Node;
import com.android.inputmethod.latin.makedict.FusionDictionary.WeightedString;
import com.android.inputmethod.latin.makedict.Word;
import java.io.IOException;
import java.io.InputStream;