# File lib/klookup/database_sqlite.rb, line 45
  def find_kanji(args={})
    raise ArgumentError, 'args must be Hash or nil' unless args.kind_of?(Hash) or args.nil?
    stroke_count = args[:stroke]
    raise ArgumentError, ':stroke must be Integer or nil' unless stroke_count.kind_of?(Integer) or stroke_count.nil?
    radical = args[:radical]
    radical = [radical] if radical.kind_of?(String)
    raise ArgumentError, ':radical must be Array, String, or nil' unless radical.kind_of?(Array) or radical.nil?

    kanji = []
    if stroke_count
      kanji = @db.execute("select kanji from kanji where stroke_count=?",
                          stroke_count).flatten
    else
      kanji = @db.execute("select kanji from kanji").flatten
    end

    if radical
      radical.each {|r|
        raise ArgumentError, ':radical must contain radicals' unless is_radical?(r)
        new_r = @db.execute("select kanji from mapping where radical=?",
                            r).flatten
        kanji &= new_r
      }
    end
    kanji
  end