1c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada/* 2c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * Copyright (C) 2013 The Android Open Source Project 3c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * 4c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * Licensed under the Apache License, Version 2.0 (the "License"); 5c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * you may not use this file except in compliance with the License. 6c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * You may obtain a copy of the License at 7c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * 8c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * http://www.apache.org/licenses/LICENSE-2.0 9c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * 10c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * Unless required by applicable law or agreed to in writing, software 11c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * distributed under the License is distributed on an "AS IS" BASIS, 12c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * See the License for the specific language governing permissions and 14c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * limitations under the License. 15c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada */ 16c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada 17c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanadapackage com.android.inputmethod.latin.makedict; 18c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada 19ea89cb40b7641764d385bbc200c5910e08a29c1aKeisuke Kuroyanagiimport com.android.inputmethod.annotations.UsedForTesting; 20c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanadaimport com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions; 2170e81af72678d95c2a38412c478e06837a51c7cbYuichiro Hanadaimport com.android.inputmethod.latin.makedict.FusionDictionary.PtNode; 22c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada 23c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanadaimport java.io.IOException; 249168ab60cf08385554a7a8255e40698988ee37f6Akifumi Yoshimotoimport java.util.HashMap; 25c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada 26c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada/** 27c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada * An interface of binary dictionary encoder. 28c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada */ 29c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanadapublic interface DictEncoder { 30ea89cb40b7641764d385bbc200c5910e08a29c1aKeisuke Kuroyanagi @UsedForTesting 31c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada public void writeDictionary(final FusionDictionary dict, final FormatOptions formatOptions) 32c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada throws IOException, UnsupportedFormatException; 3370e81af72678d95c2a38412c478e06837a51c7cbYuichiro Hanada 3470e81af72678d95c2a38412c478e06837a51c7cbYuichiro Hanada public void setPosition(final int position); 3570e81af72678d95c2a38412c478e06837a51c7cbYuichiro Hanada public int getPosition(); 3670e81af72678d95c2a38412c478e06837a51c7cbYuichiro Hanada public void writePtNodeCount(final int ptNodeCount); 379168ab60cf08385554a7a8255e40698988ee37f6Akifumi Yoshimoto public void writePtNode(final PtNode ptNode, final FusionDictionary dict, 389168ab60cf08385554a7a8255e40698988ee37f6Akifumi Yoshimoto final HashMap<Integer, Integer> codePointToOneByteCodeMap); 39c922c8a504ab31aae26193f1bf319bf9f91406a5Yuichiro Hanada} 40