aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKen Wakasa <kwakasa@google.com>2013-08-14 10:26:20 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-08-14 10:26:21 +0000
commitf795f2b7899fc62d8e96ac064265bf3d44b25704 (patch)
tree45c8add82eaf7933f6818abc3217ad63fe48c2af /java/src
parent0766f13391b9b442ba6cdc7c28fabca83a2756db (diff)
parentbbc8a930f706d16e45dce2376ea388a0fd74bb7a (diff)
downloadlatinime-f795f2b7899fc62d8e96ac064265bf3d44b25704.tar.gz
latinime-f795f2b7899fc62d8e96ac064265bf3d44b25704.tar.xz
latinime-f795f2b7899fc62d8e96ac064265bf3d44b25704.zip
Merge "Add FusionDictionaryBufferFromWritableByteBufferFactory."
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java
index 57a583228..a4a7ce458 100644
--- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java
+++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java
@@ -24,6 +24,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
@@ -82,6 +83,32 @@ public class BinaryDictReader {
}
}
+ /**
+ * Creates FusionDictionaryBuffer from a RandomAccessFile.
+ */
+ @UsedForTesting
+ public static final class FusionDictionaryBufferFromWritableByteBufferFactory
+ implements FusionDictionaryBufferFactory {
+ @Override
+ public FusionDictionaryBufferInterface getFusionDictionaryBuffer(final File file)
+ throws FileNotFoundException, IOException {
+ RandomAccessFile raFile = null;
+ ByteBuffer buffer = null;
+ try {
+ raFile = new RandomAccessFile(file, "rw");
+ buffer = raFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, file.length());
+ } finally {
+ if (raFile != null) {
+ raFile.close();
+ }
+ }
+ if (buffer != null) {
+ return new BinaryDictInputOutput.ByteBufferWrapper(buffer);
+ }
+ return null;
+ }
+ }
+
private final File mDictionaryBinaryFile;
private FusionDictionaryBufferInterface mFusionDictionaryBuffer;