53 lines
1.8 KiB
Dart
53 lines
1.8 KiB
Dart
import 'package:jadb/models/word_search/word_search_result.dart';
|
|
import 'package:jadb/models/kanji_search/kanji_search_result.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<KanjiSearchResult?> searchKanji(String kanji) =>
|
|
searchKanjiWithDbConnection(this._connection, kanji);
|
|
|
|
/// Search for a word in the database.
|
|
Future<List<WordSearchResult>?> 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<int?> 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<List<String>> searchRemainingRadicals(List<String> radicals) =>
|
|
searchRemainingRadicalsWithDbConnection(this._connection, radicals);
|
|
|
|
/// Given a list of radicals, search which kanji contains all
|
|
/// of the radicals, and return those.
|
|
Future<List<String>> searchKanjiByRadicals(List<String> radicals) =>
|
|
searchKanjiByRadicalsWithDbConnection(this._connection, radicals);
|
|
}
|