aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java60
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/Compress.java4
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java63
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java2
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java7
5 files changed, 69 insertions, 67 deletions
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
index 7a2fde8a0..4573fa6f7 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
@@ -17,6 +17,11 @@
package com.android.inputmethod.latin.dicttool;
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput;
+import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.ByteBufferWrapper;
+import com.android.inputmethod.latin.makedict.FusionDictionary;
+import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
+
+import org.xml.sax.SAXException;
import java.io.File;
import java.io.BufferedInputStream;
@@ -26,8 +31,13 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.nio.channels.FileChannel.MapMode;
import java.util.ArrayList;
+import javax.xml.parsers.ParserConfigurationException;
+
/**
* Class grouping utilities for offline dictionary making.
*
@@ -141,4 +151,54 @@ public final class BinaryDictOffdeviceUtils {
return null;
}
}
+
+ static void crash(final String filename, final Exception e) {
+ throw new RuntimeException("Can't read file " + filename, e);
+ }
+
+ static FusionDictionary getDictionary(final String filename, final boolean report) {
+ final File file = new File(filename);
+ if (report) {
+ System.out.println("Dictionary : " + file.getAbsolutePath());
+ System.out.println("Size : " + file.length() + " bytes");
+ }
+ try {
+ if (XmlDictInputOutput.isXmlUnigramDictionary(filename)) {
+ if (report) System.out.println("Format : XML unigram list");
+ return XmlDictInputOutput.readDictionaryXml(
+ new BufferedInputStream(new FileInputStream(file)),
+ null /* shortcuts */, null /* bigrams */);
+ } else if (CombinedInputOutput.isCombinedDictionary(filename)) {
+ if (report) System.out.println("Format : Combined format");
+ return CombinedInputOutput.readDictionaryCombined(
+ new BufferedInputStream(new FileInputStream(file)));
+ } else {
+ final DecoderChainSpec decodedSpec = getRawBinaryDictionaryOrNull(file);
+ if (null == decodedSpec) {
+ crash(filename, new RuntimeException(
+ filename + " does not seem to be a dictionary file"));
+ } else {
+ final FileInputStream inStream = new FileInputStream(decodedSpec.mFile);
+ final ByteBuffer buffer = inStream.getChannel().map(
+ FileChannel.MapMode.READ_ONLY, 0, decodedSpec.mFile.length());
+ if (report) {
+ System.out.println("Format : Binary dictionary format");
+ System.out.println("Packaging : " + decodedSpec.describeChain());
+ System.out.println("Uncompressed size : " + decodedSpec.mFile.length());
+ }
+ return BinaryDictInputOutput.readDictionaryBinary(
+ new BinaryDictInputOutput.ByteBufferWrapper(buffer), null);
+ }
+ }
+ } catch (IOException e) {
+ crash(filename, e);
+ } catch (SAXException e) {
+ crash(filename, e);
+ } catch (ParserConfigurationException e) {
+ crash(filename, e);
+ } catch (UnsupportedFormatException e) {
+ crash(filename, e);
+ }
+ return null;
+ }
}
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Compress.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Compress.java
index 072de5c01..8c159201a 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Compress.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Compress.java
@@ -45,11 +45,13 @@ public class Compress {
public Compressor() {
}
+ @Override
public String getHelp() {
return COMMAND + " <src_filename> <dst_filename>: "
+ "Compresses a file using gzip compression";
}
+ @Override
public void run() throws IOException {
if (mArgs.length > 2) {
throw new RuntimeException("Too many arguments for command " + COMMAND);
@@ -71,11 +73,13 @@ public class Compress {
public Uncompressor() {
}
+ @Override
public String getHelp() {
return COMMAND + " <src_filename> <dst_filename>: "
+ "Uncompresses a file compressed with gzip compression";
}
+ @Override
public void run() throws IOException {
if (mArgs.length > 2) {
throw new RuntimeException("Too many arguments for command " + COMMAND);
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java
index be4b2b881..98a4e8fa3 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java
@@ -16,25 +16,11 @@
package com.android.inputmethod.latin.dicttool;
-import com.android.inputmethod.latin.dicttool.BinaryDictOffdeviceUtils.DecoderChainSpec;
-import com.android.inputmethod.latin.makedict.BinaryDictInputOutput;
import com.android.inputmethod.latin.makedict.FormatSpec;
import com.android.inputmethod.latin.makedict.FusionDictionary;
import com.android.inputmethod.latin.makedict.FusionDictionary.WeightedString;
-import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import com.android.inputmethod.latin.makedict.Word;
-import org.xml.sax.SAXException;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-
-import javax.xml.parsers.ParserConfigurationException;
-
public class Info extends Dicttool.Command {
public static final String COMMAND = "info";
@@ -46,52 +32,6 @@ public class Info extends Dicttool.Command {
return COMMAND + "<filename>: prints various information about a dictionary file";
}
- private static void crash(final String filename, final Exception e) {
- throw new RuntimeException("Can't read file " + filename, e);
- }
-
- private static FusionDictionary getDictionary(final String filename) {
- final File file = new File(filename);
- System.out.println("Dictionary : " + file.getAbsolutePath());
- System.out.println("Size : " + file.length() + " bytes");
- try {
- if (XmlDictInputOutput.isXmlUnigramDictionary(filename)) {
- System.out.println("Format : XML unigram list");
- return XmlDictInputOutput.readDictionaryXml(
- new BufferedInputStream(new FileInputStream(file)),
- null /* shortcuts */, null /* bigrams */);
- } else if (CombinedInputOutput.isCombinedDictionary(filename)) {
- System.out.println("Format : Combined format");
- return CombinedInputOutput.readDictionaryCombined(
- new BufferedInputStream(new FileInputStream(file)));
- } else {
- final DecoderChainSpec decodedSpec =
- BinaryDictOffdeviceUtils.getRawBinaryDictionaryOrNull(file);
- if (null == decodedSpec) {
- crash(filename, new RuntimeException(
- filename + " does not seem to be a dictionary file"));
- }
- final FileInputStream inStream = new FileInputStream(decodedSpec.mFile);
- final ByteBuffer buffer = inStream.getChannel().map(
- FileChannel.MapMode.READ_ONLY, 0, decodedSpec.mFile.length());
- System.out.println("Format : Binary dictionary format");
- System.out.println("Packaging : " + decodedSpec.describeChain());
- System.out.println("Uncompressed size : " + decodedSpec.mFile.length());
- return BinaryDictInputOutput.readDictionaryBinary(
- new BinaryDictInputOutput.ByteBufferWrapper(buffer), null);
- }
- } catch (IOException e) {
- crash(filename, e);
- } catch (SAXException e) {
- crash(filename, e);
- } catch (ParserConfigurationException e) {
- crash(filename, e);
- } catch (UnsupportedFormatException e) {
- crash(filename, e);
- }
- return null;
- }
-
private static void showInfo(final FusionDictionary dict) {
System.out.println("Header attributes :");
System.out.print(dict.mOptions.toString(2));
@@ -125,7 +65,8 @@ public class Info extends Dicttool.Command {
throw new RuntimeException("Not enough arguments for command " + COMMAND);
}
final String filename = mArgs[0];
- final FusionDictionary dict = getDictionary(filename);
+ final FusionDictionary dict = BinaryDictOffdeviceUtils.getDictionary(filename,
+ true /* report */);
showInfo(dict);
}
}
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java
index c004cfbe4..808e1d4c8 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java
@@ -29,10 +29,12 @@ public class Makedict extends Dicttool.Command {
public Makedict() {
}
+ @Override
public String getHelp() {
return DictionaryMaker.Arguments.getHelp();
}
+ @Override
public void run() throws FileNotFoundException, IOException, ParserConfigurationException,
SAXException, UnsupportedFormatException {
DictionaryMaker.main(mArgs);
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
index d8d94a13c..1fd2cba7a 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
@@ -56,8 +56,6 @@ public class XmlDictInputOutput {
private static final String WORD_ATTR = "word";
private static final String NOT_A_WORD_ATTR = "not_a_word";
- private static final int SHORTCUT_ONLY_DEFAULT_FREQ = 1;
-
private static final String OPTIONS_KEY = "options";
private static final String GERMAN_UMLAUT_PROCESSING_OPTION = "german_umlaut_processing";
private static final String FRENCH_LIGATURE_PROCESSING_OPTION = "french_ligature_processing";
@@ -67,12 +65,9 @@ public class XmlDictInputOutput {
*/
static private class UnigramHandler extends DefaultHandler {
// Parser states
- private static final int NONE = 0;
private static final int START = 1;
private static final int WORD = 2;
- private static final int BIGRAM = 4;
- private static final int END = 5;
- private static final int UNKNOWN = 6;
+ private static final int UNKNOWN = 3;
FusionDictionary mDictionary;
int mState; // the state of the parser