/* WTranslationEntry.java - corresponds to a line in a translations * of Wiktionary word. * * Copyright (c) 2009 Andrew Krizhanovsky <andrew.krizhanovsky at gmail.com> * Distributed under GNU General Public License. */ package wikokit.base.wikt.word; import wikokit.base.wikt.util.WikiText; import wikokit.base.wikipedia.language.LanguageType; import wikokit.base.wikt.multi.ru.WTranslationEntryRu; import wikokit.base.wikt.multi.en.WTranslationEntryEn; /** One line in the Translation section, i.e. a translation to one language. */ public class WTranslationEntry { /** Foreign language. */ private LanguageType lang; /** Foreign words (phrases) with context comments, i.e, labels, tags, * e.g. "[[little]] [[bell]]". */ private WikiText[] phrases; public WTranslationEntry(LanguageType _lang, WikiText[] _phrases) { lang = _lang; phrases = _phrases; } /** Gets a destination language of the translation. */ public LanguageType getLanguage() { return lang; } /** Gets array of internal links (wiki words, i.e. words with hyperlinks). */ public WikiText[] getWikiPhrases() { return phrases; } /** Frees memory recursively. */ public void free () { if(null != phrases) { for(int i=0; i<phrases.length; i++) { phrases[i].free(); phrases[i] = null; } phrases = null; } } /** Parses one entry (one line) of a translation box, * extracts a language and a list of translations (wikified words) for this language, * creates and fills WTranslationEntry. * * @param wikt_lang language of Wiktionary * @param page_title word which are described in this article 'text' * @param text translaton box text * @return WTranslation or null if the translation language or translation text are absent. */ public static WTranslationEntry parse(LanguageType wikt_lang, String page_title, String text) { WTranslationEntry wte = null; LanguageType l = wikt_lang; if(l == LanguageType.ru) { wte = WTranslationEntryRu.parse(page_title, text); } else if(l == LanguageType.en) { wte = WTranslationEntryEn.parse(page_title, text); //} //else if(code.equalsIgnoreCase( "simple" )) { // return WordSimple; // todo // ... } else { throw new NullPointerException("Null LanguageType"); } return wte; } }