Files
jadb/lib/search.dart
2025-05-22 19:45:10 +02:00

61 lines
2.1 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/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<KanjiSearchResult?> searchKanji(String kanji) =>
searchKanjiWithDbConnection(this._connection, kanji);
/// Filter a list of characters, and return the ones that are listed in the kanji dictionary.
Future<List<String>> filterKanji(
List<String> kanji, {
bool deduplicate = false,
}) =>
filterKanjiWithDbConnection(this._connection, kanji, deduplicate);
/// 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);
}