import 'package:jadb/models/word_search/word_search_result.dart'; import 'package:jadb/models/kanji_search/kanji_search_result.dart'; import 'package:jadb/search/filter_kanji.dart'; import 'package:jadb/search/radical_search.dart'; import 'package:jadb/search/word_search/word_search.dart'; import 'package:jadb/search/kanji_search.dart'; import 'package:sqflite_common/sqlite_api.dart'; class JaDBConnection { final DatabaseExecutor _connection; const JaDBConnection(this._connection); /// Search for a kanji in the database. Future searchKanji(String kanji) => searchKanjiWithDbConnection(this._connection, kanji); /// Filter a list of characters, and return the ones that are listed in the kanji dictionary. Future> filterKanji( List kanji, { bool deduplicate = false, }) => filterKanjiWithDbConnection(this._connection, kanji, deduplicate); /// Search for a word in the database. Future?> searchWord( String word, { SearchMode searchMode = SearchMode.Auto, int page = 0, int pageSize = 10, }) => searchWordWithDbConnection( this._connection, word, searchMode, page, pageSize, ); /// Search for a word in the database, and return the count of results. Future searchWordCount( String word, { SearchMode searchMode = SearchMode.Auto, }) => searchWordCountWithDbConnection(this._connection, word, searchMode); /// Given a list of radicals, search which kanji contains all /// of the radicals, find their other radicals, and return those. /// This is used to figure out which remaining combinations of radicals /// the user can search for without getting zero results. Future> searchRemainingRadicals(List radicals) => searchRemainingRadicalsWithDbConnection(this._connection, radicals); /// Given a list of radicals, search which kanji contains all /// of the radicals, and return those. Future> searchKanjiByRadicals(List radicals) => searchKanjiByRadicalsWithDbConnection(this._connection, radicals); }