WideString WZLookupTable::get_candidate (int index) const
{
    if (index < 0 || index >= (int) number_of_candidates ())
        return WideString ();

    return possible_entries[index];
}
WideString
NativeLookupTable::get_candidate (int index) const
{
    if (index < 0 || index >= (int) number_of_candidates ())
        return WideString ();

    if (index < (int) m_strings.size ()) {
        return m_strings [index];
    } else if (index < (int) (m_strings.size () + m_phrases.size ())) {
        return m_phrases [index - m_strings.size ()].get_content ();
    } else {
        return WideString (m_chars.begin () + index - m_strings.size () - m_phrases.size (), 
                        m_chars.begin () + index - m_strings.size () - m_phrases.size () + 1);
    }
    return WideString ();
}