1053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/*
259aefa242169b7a51c2381daee58ff22fd1834ceJunichi Monma * Copyright (C) 2008-2012  OMRON SOFTWARE Co., Ltd.
3053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
4053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * you may not use this file except in compliance with the License.
6053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * You may obtain a copy of the License at
7053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
8053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
10053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * See the License for the specific language governing permissions and
14053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * limitations under the License.
15053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
16053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
17053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectpackage jp.co.omronsoft.openwnn;
18053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
19053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.io.IOException;
20053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.ArrayList;
21053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.HashMap;
22053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.Iterator;
23053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport org.xmlpull.v1.XmlPullParserException;
24053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport android.content.SharedPreferences;
25053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport android.content.res.XmlResourceParser;
26053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport android.util.Log;
27053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
28053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/**
293feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * The generator class of symbol list.
30053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br>
31053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * This class is used for generating lists of symbols.
32053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
333feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * @author Copyright (C) 2009 OMRON SOFTWARE CO., LTD.  All Rights Reserved.
34053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
35053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectpublic class SymbolList implements WnnEngine {
36053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /*
37053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * DEFINITION OF CONSTANTS
38053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
393feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Language definition (English) */
40053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public static final int LANG_EN = 0;
41053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
423feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Language definition (Japanese) */
43053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public static final int LANG_JA = 1;
44053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
453feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Language definition (Chinese) */
46053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public static final int LANG_ZHCN = 2;
47053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
48053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
493feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Key string to get normal symbol list for Japanese */
50053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public static final String SYMBOL_JAPANESE = "j";
51053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
523feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Key string to get normal symbol list for English */
53053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public static final String SYMBOL_ENGLISH = "e";
54053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
553feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Key string to get normal symbol list for Chinese */
563feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    public static final String SYMBOL_CHINESE = "c1";
577b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa
583feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Key string to get face mark list for Japanese */
5977ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa    public static final String SYMBOL_JAPANESE_FACE  = "j_face";
60053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
613feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** The name of XML tag key */
6277ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa    private static final String XMLTAG_KEY = "string";
63053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
64053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /*
65053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * DEFINITION OF VARIABLES
66053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
673feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Symbols data */
687b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa    protected HashMap<String,ArrayList<String>> mSymbols;
69053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
703feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** OpenWnn which has this instance */
71053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    private OpenWnn mWnn;
72053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
733feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** current list of symbols */
74053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    private ArrayList<String> mCurrentList;
75053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
763feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** Iterator for getting symbols from the list */
7777ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa    private Iterator<String> mCurrentListIterator;
78053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
79053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /*
80053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * DEFINITION OF METHODS
81053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
82053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /**
83053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * Constructor
84053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     *
857b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa     * @param parent  OpenWnn instance which uses this.
867b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa     * @param lang    Language ({@code LANG_EN}, {@code LANG_JA} or {@code LANG_ZHCN})
87053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
88053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public SymbolList(OpenWnn parent, int lang) {
89053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        mWnn = parent;
907b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa        mSymbols = new HashMap<String, ArrayList<String>>();
91053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
92053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        switch (lang) {
93053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        case LANG_EN:
94053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            /* symbols for English IME */
95053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            mSymbols.put(SYMBOL_ENGLISH, getXmlfile(R.xml.symbols_latin12_list));
96053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            mCurrentList = mSymbols.get(SYMBOL_ENGLISH);
97053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            break;
98053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
99053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        case LANG_JA:
100053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            /* symbols for Japanese IME */
101053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            mSymbols.put(SYMBOL_JAPANESE, getXmlfile(R.xml.symbols_japan_list));
102053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            mSymbols.put(SYMBOL_JAPANESE_FACE, getXmlfile(R.xml.symbols_japan_face_list));
10359aefa242169b7a51c2381daee58ff22fd1834ceJunichi Monma            mSymbols.put(SYMBOL_ENGLISH, getXmlfile(R.xml.symbols_latin1_list));
10459aefa242169b7a51c2381daee58ff22fd1834ceJunichi Monma            mCurrentList = mSymbols.get(SYMBOL_JAPANESE);
105053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            break;
106e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa
1073feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa        case LANG_ZHCN:
108053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            /* symbols for Chinese IME */
1093feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa            mSymbols.put(SYMBOL_CHINESE, getXmlfile(R.xml.symbols_china_list));
1103feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa            mSymbols.put(SYMBOL_ENGLISH, getXmlfile(R.xml.symbols_latin1_list));
1113feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa            mCurrentList = mSymbols.get(SYMBOL_CHINESE);
112053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            break;
113053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        }
114053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
115053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        mCurrentList = null;
116053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
11777ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
118053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /**
119053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * Get a attribute value from a XML resource.
120053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     *
12177ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa     * @param xrp   XML resource
12277ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa     * @param name  The attribute name
123053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     *
12477ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa     * @return  The value of the attribute
125053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
126053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    private String getXmlAttribute(XmlResourceParser xrp, String name) {
127053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        int resId = xrp.getAttributeResourceValue(null, name, 0);
128053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        if (resId == 0) {
129053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            return xrp.getAttributeValue(null, name);
130053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        } else {
131053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            return mWnn.getString(resId);
132053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        }
133053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
134053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
135053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /**
136053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * Load a symbols list from XML resource.
137053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     *
13877ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa     * @param id    XML resource ID
13977ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa     * @return      The symbols list
140053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
14177ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa    private ArrayList<String> getXmlfile(int id) {
142053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        ArrayList<String> list = new ArrayList<String>();
143053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
144053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        XmlResourceParser xrp = mWnn.getResources().getXml(id);
145053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        try {
146053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            int xmlEventType;
147053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            while ((xmlEventType = xrp.next()) != XmlResourceParser.END_DOCUMENT) {
148053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                if (xmlEventType == XmlResourceParser.START_TAG) {
149053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                    String attribute = xrp.getName();
150053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                    if (XMLTAG_KEY.equals(attribute)) {
151053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                        String value = getXmlAttribute(xrp, "value");
152053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                        if (value != null) {
153053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                            list.add(value);
154053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                        }
155053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                    }
156053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project                }
157053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            }
158053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            xrp.close();
159053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        } catch (XmlPullParserException e) {
160053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            Log.e("OpenWnn", "Ill-formatted keybaord resource file");
161053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        } catch (IOException e) {
162053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            Log.e("OpenWnn", "Unable to read keyboard resource file");
163053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        }
164053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
165053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        return list;
166053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
167053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
168053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /**
169053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * Set the dictionary
170053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     *
171053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * @param listType  The list of symbol
1727b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa     * @return          {@code true} if valid type is specified; {@code false} if not;
173053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     */
174053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public boolean setDictionary(String listType) {
175053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        mCurrentList = mSymbols.get(listType);
176053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        return (mCurrentList != null);
177053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
178053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
179053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    /***********************************************************************
180053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     * WnnEngine's interface
181053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     **********************************************************************/
1823feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#init */
183053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public void init() {}
18477ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
1853feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#close */
186053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public void close() {}
18777ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
1883feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#predict */
189053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public int predict(ComposingText text, int minLen, int maxLen) {
190053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        /* ignore if there is no list for the type */
191053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        if (mCurrentList == null) {
192053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            mCurrentListIterator = null;
193053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            return 0;
194053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        }
195053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
196053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        /* return the iterator of the list */
197053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        mCurrentListIterator = mCurrentList.iterator();
198053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        return 1;
199053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
20077ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
2013feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#convert */
202053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public int convert(ComposingText text) {
203053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        return 0;
204053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
205053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2063feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#searchWords */
207053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public int searchWords(String key) {return 0;}
208053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2093feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#searchWords */
210053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public int searchWords(WnnWord word) {return 0;}
21177ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
2123feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#getNextCandidate */
213053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public WnnWord getNextCandidate() {
214053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        if (mCurrentListIterator == null || !mCurrentListIterator.hasNext()) {
215053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project            return null;
216053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        }
217053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        String str = mCurrentListIterator.next();
218053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        WnnWord word = new WnnWord(str, str);
219053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        return word;
220053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    }
22177ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
2223feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#learn */
223053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public boolean learn(WnnWord word) {return false;}
22477ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
2253feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#addWord */
226053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public int addWord(WnnWord word) {return 0;}
227053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2283feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#deleteWord */
229053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public boolean deleteWord(WnnWord word) {return false;}
23077ffa9b0b986a2d70143f63cdaa8451bf1674f84Daisuke Miyakawa
2313feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#setPreferences */
232053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public void setPreferences(SharedPreferences pref) {}
233053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2343feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#breakSequence */
235053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public void breakSequence() {}
236053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2373feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#makeCandidateListOf */
238053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public int makeCandidateListOf(int clausePosition) {return 0;}
239053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2403feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#initializeDictionary */
241053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public boolean initializeDictionary(int dictionary) {return true;}
242053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
2433feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#initializeDictionary */
2447b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa    public boolean initializeDictionary(int dictionary, int type) {return true;}
2457b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa
2463feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa    /** @see jp.co.omronsoft.openwnn.WnnEngine#getUserDictionaryWords */
247053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    public WnnWord[] getUserDictionaryWords() {return null;}
248053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project}
249