Merge "Move code only used for dicttool and tests under tests."
This commit is contained in:
commit
6008898b99
24 changed files with 58 additions and 100 deletions
|
@ -18,9 +18,7 @@ package com.android.inputmethod.latin.makedict;
|
|||
|
||||
import com.android.inputmethod.annotations.UsedForTesting;
|
||||
import com.android.inputmethod.latin.Constants;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
|
@ -363,42 +361,6 @@ public final class FormatSpec {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns new dictionary decoder.
|
||||
*
|
||||
* @param dictFile the dictionary file.
|
||||
* @param offset the offset in the file.
|
||||
* @param length the length of the file, in bytes.
|
||||
* @param bufferType The type of buffer, as one of USE_* in DictDecoder.
|
||||
* @return new dictionary decoder if the dictionary file exists, otherwise null.
|
||||
*/
|
||||
public static DictDecoder getDictDecoder(final File dictFile, final long offset,
|
||||
final long length, final int bufferType) {
|
||||
if (dictFile.isDirectory()) {
|
||||
return new Ver4DictDecoder(dictFile, bufferType);
|
||||
} else if (dictFile.isFile()) {
|
||||
return new Ver2DictDecoder(dictFile, offset, length, bufferType);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@UsedForTesting
|
||||
public static DictDecoder getDictDecoder(final File dictFile, final long offset,
|
||||
final long length, final DictionaryBufferFactory factory) {
|
||||
if (dictFile.isDirectory()) {
|
||||
return new Ver4DictDecoder(dictFile, factory);
|
||||
} else if (dictFile.isFile()) {
|
||||
return new Ver2DictDecoder(dictFile, offset, length, factory);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@UsedForTesting
|
||||
public static DictDecoder getDictDecoder(final File dictFile, final long offset,
|
||||
final long length) {
|
||||
return getDictDecoder(dictFile, offset, length, DictDecoder.USE_READONLY_BYTEBUFFER);
|
||||
}
|
||||
|
||||
private FormatSpec() {
|
||||
// This utility class is not publicly instantiable.
|
||||
}
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2011 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.makedict;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Wrapper to redirect log events to the right output medium.
|
||||
*/
|
||||
public final class MakedictLog {
|
||||
public static final boolean DBG = false;
|
||||
private static final String TAG = MakedictLog.class.getSimpleName();
|
||||
|
||||
public static void d(String message) {
|
||||
if (DBG) {
|
||||
Log.d(TAG, message);
|
||||
}
|
||||
}
|
||||
|
||||
public static void i(String message) {
|
||||
if (DBG) {
|
||||
Log.i(TAG, message);
|
||||
}
|
||||
}
|
||||
|
||||
public static void w(String message) {
|
||||
Log.w(TAG, message);
|
||||
}
|
||||
|
||||
public static void e(String message) {
|
||||
Log.e(TAG, message);
|
||||
}
|
||||
}
|
|
@ -23,12 +23,10 @@ import android.content.res.Resources;
|
|||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.inputmethod.annotations.UsedForTesting;
|
||||
import com.android.inputmethod.latin.AssetFileAddress;
|
||||
import com.android.inputmethod.latin.BinaryDictionaryGetter;
|
||||
import com.android.inputmethod.latin.Constants;
|
||||
import com.android.inputmethod.latin.R;
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||
import com.android.inputmethod.latin.makedict.DictionaryHeader;
|
||||
import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
|
||||
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
|
||||
|
|
|
@ -20,6 +20,7 @@ import android.test.AndroidTestCase;
|
|||
import android.test.suitebuilder.annotation.LargeTest;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||
import com.android.inputmethod.latin.makedict.CodePointUtils;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder;
|
||||
import com.android.inputmethod.latin.makedict.DictionaryHeader;
|
||||
|
@ -151,7 +152,8 @@ public class BinaryDictionaryDecayingTests extends AndroidTestCase {
|
|||
binaryDictionary.flushWithGC();
|
||||
binaryDictionary.close();
|
||||
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(dictFile, 0, dictFile.length());
|
||||
final DictDecoder dictDecoder =
|
||||
BinaryDictIOUtils.getDictDecoder(dictFile, 0, dictFile.length());
|
||||
try {
|
||||
final FusionDictionary dict =
|
||||
dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
|
||||
|
|
|
@ -251,7 +251,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
|
|||
|
||||
FusionDictionary dict = null;
|
||||
try {
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file, 0, file.length(),
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
|
||||
bufferType);
|
||||
now = System.currentTimeMillis();
|
||||
dict = dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
|
||||
|
@ -414,7 +414,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
|
|||
|
||||
long now = -1, diff = -1;
|
||||
try {
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file, 0, file.length(),
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
|
||||
bufferType);
|
||||
now = System.currentTimeMillis();
|
||||
dictDecoder.readUnigramsAndBigramsBinary(resultWords, resultFreqs, resultBigrams);
|
||||
|
@ -539,7 +539,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
|
|||
addBigrams(dict, words, bigrams);
|
||||
timeWritingDictToFile(file, dict, formatOptions);
|
||||
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file, 0, file.length(),
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
|
||||
DictDecoder.USE_BYTEARRAY);
|
||||
try {
|
||||
dictDecoder.openDictBuffer();
|
||||
|
|
|
@ -28,7 +28,6 @@ import java.nio.ByteBuffer;
|
|||
*
|
||||
* All the methods in this class are static.
|
||||
*
|
||||
* TODO: Remove calls from classes except Ver3DictDecoder
|
||||
* TODO: Move this file to makedict/internal.
|
||||
* TODO: Rename this class to DictDecoderUtils.
|
||||
*/
|
||||
|
@ -356,7 +355,7 @@ public final class BinaryDictDecoderUtils {
|
|||
* @return true if it's a binary dictionary, false otherwise
|
||||
*/
|
||||
public static boolean isBinaryDictionary(final File file) {
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file, 0, file.length());
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length());
|
||||
if (dictDecoder == null) {
|
||||
return false;
|
||||
}
|
|
@ -18,7 +18,9 @@ package com.android.inputmethod.latin.makedict;
|
|||
|
||||
import com.android.inputmethod.annotations.UsedForTesting;
|
||||
import com.android.inputmethod.latin.Constants;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
|
@ -32,6 +34,38 @@ public final class BinaryDictIOUtils {
|
|||
// This utility class is not publicly instantiable.
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns new dictionary decoder.
|
||||
*
|
||||
* @param dictFile the dictionary file.
|
||||
* @param bufferType The type of buffer, as one of USE_* in DictDecoder.
|
||||
* @return new dictionary decoder if the dictionary file exists, otherwise null.
|
||||
*/
|
||||
public static DictDecoder getDictDecoder(final File dictFile, final long offset,
|
||||
final long length, final int bufferType) {
|
||||
if (dictFile.isDirectory()) {
|
||||
return new Ver4DictDecoder(dictFile, bufferType);
|
||||
} else if (dictFile.isFile()) {
|
||||
return new Ver2DictDecoder(dictFile, offset, length, bufferType);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static DictDecoder getDictDecoder(final File dictFile, final long offset,
|
||||
final long length, final DictionaryBufferFactory factory) {
|
||||
if (dictFile.isDirectory()) {
|
||||
return new Ver4DictDecoder(dictFile, factory);
|
||||
} else if (dictFile.isFile()) {
|
||||
return new Ver2DictDecoder(dictFile, offset, length, factory);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static DictDecoder getDictDecoder(final File dictFile, final long offset,
|
||||
final long length) {
|
||||
return getDictDecoder(dictFile, offset, length, DictDecoder.USE_READONLY_BYTEBUFFER);
|
||||
}
|
||||
|
||||
private static final class Position {
|
||||
public static final int NOT_READ_PTNODE_COUNT = -1;
|
||||
|
|
@ -30,6 +30,7 @@ LATINIME_LOCAL_DIR := ../..
|
|||
LATINIME_BASE_SOURCE_DIRECTORY := $(LATINIME_LOCAL_DIR)/java/src/com/android/inputmethod
|
||||
LATINIME_ANNOTATIONS_SOURCE_DIRECTORY := $(LATINIME_BASE_SOURCE_DIRECTORY)/annotations
|
||||
MAKEDICT_CORE_SOURCE_DIRECTORY := $(LATINIME_BASE_SOURCE_DIRECTORY)/latin/makedict
|
||||
LATINIME_TESTS_SOURCE_DIRECTORY := $(LATINIME_LOCAL_DIR)/tests/src/com/android/inputmethod/latin
|
||||
|
||||
# Dependencies for Dicttool. Most of these files are needed by BinaryDictionary.java. Note that
|
||||
# a significant part of the dependencies are mocked in the compat/ directory, with empty or
|
||||
|
@ -47,7 +48,6 @@ LATINIME_SRCS_FOR_DICTTOOL := \
|
|||
latin/WordComposer.java \
|
||||
latin/settings/NativeSuggestOptions.java \
|
||||
latin/utils/BinaryDictionaryUtils.java \
|
||||
latin/utils/ByteArrayDictBuffer.java \
|
||||
latin/utils/CollectionUtils.java \
|
||||
latin/utils/CombinedFormatUtils.java \
|
||||
latin/utils/CoordinateUtils.java \
|
||||
|
@ -56,8 +56,13 @@ LATINIME_SRCS_FOR_DICTTOOL := \
|
|||
latin/utils/LocaleUtils.java \
|
||||
latin/utils/ResizableIntArray.java \
|
||||
latin/utils/StringUtils.java
|
||||
USED_TARGETED_SRCS := $(addprefix $(LATINIME_BASE_SOURCE_DIRECTORY)/, \
|
||||
$(LATINIME_SRCS_FOR_DICTTOOL))
|
||||
|
||||
LATINIME_TEST_SRCS_FOR_DICTTOOL := \
|
||||
utils/ByteArrayDictBuffer.java
|
||||
|
||||
USED_TARGETED_SRCS := \
|
||||
$(addprefix $(LATINIME_BASE_SOURCE_DIRECTORY)/, $(LATINIME_SRCS_FOR_DICTTOOL)) \
|
||||
$(addprefix $(LATINIME_TESTS_SOURCE_DIRECTORY)/, $(LATINIME_TEST_SRCS_FOR_DICTTOOL))
|
||||
|
||||
DICTTOOL_ONDEVICE_TESTS_DIRECTORY := \
|
||||
$(LATINIME_LOCAL_DIR)/tests/src/com/android/inputmethod/latin/makedict/
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package com.android.inputmethod.latin.dicttool;
|
||||
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils;
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder;
|
||||
import com.android.inputmethod.latin.makedict.FormatSpec;
|
||||
import com.android.inputmethod.latin.makedict.FusionDictionary;
|
||||
|
@ -191,8 +192,9 @@ public final class BinaryDictOffdeviceUtils {
|
|||
return CombinedInputOutput.readDictionaryCombined(
|
||||
new BufferedInputStream(new FileInputStream(decodedSpec.mFile)));
|
||||
} else {
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(decodedSpec.mFile,
|
||||
0, decodedSpec.mFile.length(), DictDecoder.USE_BYTEARRAY);
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(
|
||||
decodedSpec.mFile, 0, decodedSpec.mFile.length(),
|
||||
DictDecoder.USE_BYTEARRAY);
|
||||
if (report) {
|
||||
System.out.println("Format : Binary dictionary format");
|
||||
System.out.println("Packaging : " + decodedSpec.describeChain());
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package com.android.inputmethod.latin.dicttool;
|
||||
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils;
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder;
|
||||
import com.android.inputmethod.latin.makedict.DictEncoder;
|
||||
import com.android.inputmethod.latin.makedict.FormatSpec;
|
||||
|
@ -264,7 +265,7 @@ public class DictionaryMaker {
|
|||
private static FusionDictionary readBinaryFile(final String binaryFilename)
|
||||
throws FileNotFoundException, IOException, UnsupportedFormatException {
|
||||
final File file = new File(binaryFilename);
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file, 0, file.length());
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length());
|
||||
return dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package com.android.inputmethod.latin.dicttool;
|
||||
|
||||
import com.android.inputmethod.latin.Dictionary;
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder;
|
||||
import com.android.inputmethod.latin.makedict.DictEncoder;
|
||||
import com.android.inputmethod.latin.makedict.DictionaryHeader;
|
||||
|
@ -77,7 +79,7 @@ public class BinaryDictOffdeviceUtilsTests extends TestCase {
|
|||
assertEquals("Wrong decode spec", BinaryDictOffdeviceUtils.COMPRESSION, step);
|
||||
}
|
||||
assertEquals("Wrong decode spec", 3, decodeSpec.mDecoderSpec.size());
|
||||
final DictDecoder dictDecoder = FormatSpec.getDictDecoder(decodeSpec.mFile, 0,
|
||||
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(decodeSpec.mFile, 0,
|
||||
decodeSpec.mFile.length());
|
||||
final FusionDictionary resultDict =
|
||||
dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
|
||||
|
|
Loading…
Reference in a new issue