diff options
author | 2013-08-20 21:35:21 +0900 | |
---|---|---|
committer | 2013-08-22 11:53:41 +0900 | |
commit | c922c8a504ab31aae26193f1bf319bf9f91406a5 (patch) | |
tree | 63e5361d7569bba59545a7fc48319f31ef7975fa /java/src/com/android/inputmethod/latin/makedict/Ver3DictEncoder.java | |
parent | f9233e0b98469a7e9e9a863d491a33593dba4bff (diff) | |
download | latinime-c922c8a504ab31aae26193f1bf319bf9f91406a5.tar.gz latinime-c922c8a504ab31aae26193f1bf319bf9f91406a5.tar.xz latinime-c922c8a504ab31aae26193f1bf319bf9f91406a5.zip |
Add DictEncoder.
Change-Id: I41049b9118b58838e5dedf8e5618d939ca70c5ef
Diffstat (limited to 'java/src/com/android/inputmethod/latin/makedict/Ver3DictEncoder.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/makedict/Ver3DictEncoder.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver3DictEncoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver3DictEncoder.java new file mode 100644 index 000000000..e81fd4514 --- /dev/null +++ b/java/src/com/android/inputmethod/latin/makedict/Ver3DictEncoder.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2013 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 com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +/** + * An implementation of DictEncoder for version 3 binary dictionary. + */ +public class Ver3DictEncoder implements DictEncoder { + + private final File mDictFile; + private OutputStream mOutStream; + + public Ver3DictEncoder(final File dictFile) { + mDictFile = dictFile; + mOutStream = null; + } + + // This constructor is used only by BinaryDictOffdeviceUtilsTests. + // If you want to use this in the production code, you should consider keeping consistency of + // the interface of Ver3DictDecoder by using factory. + public Ver3DictEncoder(final OutputStream outStream) { + mDictFile = null; + mOutStream = outStream; + } + + private void openStream() throws FileNotFoundException { + mOutStream = new FileOutputStream(mDictFile); + } + + private void close() throws IOException { + if (mOutStream != null) { + mOutStream.close(); + mOutStream = null; + } + } + + @Override + public void writeDictionary(FusionDictionary dict, FormatOptions formatOptions) + throws IOException, UnsupportedFormatException { + if (mOutStream == null) { + openStream(); + } + BinaryDictEncoderUtils.writeDictionaryBinary(mOutStream, dict, formatOptions); + close(); + } +} |